<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta content="width=device-width, initial-scale=1.0" name="viewport"><meta content="smart-doc" name="generator"><%if(isNotEmpty(projectName)){%><title>${projectName}</title><%}else{%><title>API Reference</title><%}%><link href="font.css" rel="stylesheet"><link href="AllInOne.css?v=${version}" rel="stylesheet"/><%if(isNotEmpty(highlightCssLink)){%><link href="${highlightCssLink}" rel="stylesheet"><%}%><style>.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:${background}}.hljs{padding:0}</style><script src="highlight.min.js"></script><script src="jquery.min.js"></script></head><body class="book toc2 toc-left"><div id="header"><%if(isNotEmpty(projectName)){%><h1>${projectName}</h1><%}%><div class="toc2" id="toc"><div id="book-search-input"><input id="search" placeholder="Type to search" type="text"></div><div id="toctitle"><span>API Reference</span></div><ul class="sectlevel1" id="accordion"><%for(apiGroup in apiDocList){%><%if(!apiDocListOnlyHasDefaultGroup){%><%if(apiGroupLP.first){%><li class="open"><a class="dd" href="#_${apiGroup.order}_${apiGroup.group}">${apiGroup.order}.${htmlEscape(apiGroup.group)}</a><ul class="sectlevel1"><%for(api in apiGroup.childrenApiDocs){%><li class="open"><a class="dd" href="#_${apiGroup.order}_${api.order}_${removeLineBreaks(api.desc)}">${apiGroup.order}.${api.order}.${htmlEscape(api.desc)}</a><ul class="sectlevel2" style="display: block"><%for(doc in api.list){%><li><%if(doc.deprecated){%><a href="#_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}">${apiGroup.order}.${api.order}.${doc.order}.<span class="line-through">${htmlEscape(doc.desc)}</span></a><%}else{%><a href="#_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}">${apiGroup.order}.${api.order}.${doc.order}.${htmlEscape(doc.desc)}</a><%}%></li><%}%></ul></li><%}%></ul></li><%}else{%><li><a class="dd" href="#_${apiGroup.order}_${apiGroup.group}">${apiGroup.order}.${htmlEscape(apiGroup.group)}</a><ul class="sectlevel1"><%for(api in apiGroup.childrenApiDocs){%><li class="open"><a class="dd" href="#_${apiGroup.order}_${api.order}_${removeLineBreaks(api.desc)}">${apiGroup.order}.${api.order}.${htmlEscape(api.desc)}</a><ul class="sectlevel2"><%for(doc in api.list){%><li><%if(doc.deprecated){%><a href="#_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}">${apiGroup.order}.${api.order}.${doc.order}.<span class="line-through">${htmlEscape(doc.desc)}</span></a><%}else{%><a href="#_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}">${apiGroup.order}.${api.order}.${doc.order}.${htmlEscape(doc.desc)}</a><%}%></li><%}%></ul></li><%}%></ul></li><%}%><%}else{%><%if(apiGroupLP.first){%><%for(api in apiGroup.childrenApiDocs){%><li class="open"><a class="dd" href="#_${api.order}_${removeLineBreaks(api.desc)}">${api.order}.${htmlEscape(api.desc)}</a><ul class="sectlevel2"><%for(doc in api.list){%><li><%if(doc.deprecated){%><a href="#_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}">${api.order}.${doc.order}.<span class="line-through">${htmlEscape(doc.desc)}</span></a><%}else{%><a href="#_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}">${api.order}.${doc.order}.${htmlEscape(doc.desc)}</a><%}%></li><%}%></ul></li><%}%><%}else{%><%for(api in apiGroup.childrenApiDocs){%><li><a class="dd" href="#_${api.order}_${removeLineBreaks(api.desc)}">${api.order}.${htmlEscape(api.desc)}</a><ul class="sectlevel2"><%for(doc in api.list){%><li><%if(doc.deprecated){%><a href="#_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}">${api.order}.${doc.order}.<span class="line-through">${htmlEscape(doc.desc)}</span></a><%}else{%><a href="#_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}">${api.order}.${doc.order}.${htmlEscape(doc.desc)}</a><%}%></li><%}%></ul></li><%}%><%}%><%}%><%}%><%if(isNotEmpty(errorCodeList)){%><li><a href="#_${errorListTitle}">${errorCodeListOrder}.${errorListTitle}</a></li><%}%><%if(isNotEmpty(dictList)){%><li><a class="dd" href="#_${dictListTitle}">${dictListOrder}.${dictListTitle}</a><ul class="sectlevel2"><%for(dict in dictList){%><li><a href="#_${dictListOrder}_${dict.order}_${dict.title}">${dictListOrder}.${dict.order}.${dict.title}</a></li><%}%></ul></li><%}%></ul></div></div><div id="content"><%if(isNotEmpty(revisionLogList)){%><div id="preamble"><div class="sectionbody"><table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Version</th><th class="tableblock halign-left valign-top">Update Time</th><th class="tableblock halign-left valign-top">Status</th><th class="tableblock halign-left valign-top">Author</th><th class="tableblock halign-left valign-top">Description</th></tr></thead><tbody><%for(revisionLog in revisionLogList){%><tr><td class="tableblock halign-left valign-top"><p class="tableblock">${revisionLog.version}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${revisionLog.revisionTime}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${revisionLog.status}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${revisionLog.author}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${htmlEscape(revisionLog.remarks)}</p></td></tr><%}%></tbody></table></div></div><%}%><%for(apiGroup in apiDocList){%><%if(!apiDocListOnlyHasDefaultGroup){%><h1 id="_${apiGroup.order}_${apiGroup.name}"><a class="anchor" href="#_${apiGroup.order}_${apiGroup.name}"></a><a class="link" href="#_${apiGroup.order}_${apiGroup.name}">${apiGroup.order}.${htmlEscape(apiGroup.name)}</a></h1><%}%><%for(api in apiGroup.childrenApiDocs){%><div class="sect1"><h2 id="_${apiGroup.order}_${api.order}_${removeLineBreaks(api.desc)}"><a class="anchor" href="#_${apiGroup.order}_${api.order}_${removeLineBreaks(api.desc)}"></a><a class="link" href="#_${apiGroup.order}_${api.order}_${removeLineBreaks(api.desc)}"><%if(apiGroupLP.size>1){%>${apiGroup.order}.${api.order}.${htmlEscape(api.desc)}<%}else{%>${api.order}.${htmlEscape(api.desc)}<%}%></a></h2><div class="sectionbody"><%for(doc in api.list){%><div class="sect2" id="${doc.methodId}"><h3 id="_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}"><a class="anchor" href="#_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}"></a><%if(doc.deprecated){%><a class="link" href="#_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}"><%if(!apiDocListOnlyHasDefaultGroup){%>${apiGroup.order}.${api.order}.${doc.order}.<%}else{%>${api.order}.${doc.order}.<%}%><span class="line-through">${htmlEscape(doc.desc)}</span></a><%}else{%><a class="link" href="#_${apiGroup.order}_${api.order}_${doc.order}_${removeLineBreaks(doc.desc)}"><%if(!apiDocListOnlyHasDefaultGroup){%>${apiGroup.order}.${api.order}.${doc.order}.${htmlEscape(doc.desc)}<%}else{%>${api.order}.${doc.order}.${htmlEscape(doc.desc)}<%}%></a><%}%></h3><div class="paragraph" data-download="${doc.download}" data-page="${doc.page}" data-url="${doc.url}" id="${doc.methodId}-url"><p><strong>URL:</strong><a class="bare" href="${doc.url}">&nbsp;${doc.url}</a></p></div><div class="paragraph" data-method="${doc.type}" id="${doc.methodId}-method"><p><strong>Type:&nbsp;</strong>${doc.type}</p></div><%if(isNotEmpty(doc.author)){%><div class="paragraph"><p><strong>Author:&nbsp;</strong>${doc.author}</p></div><%}%><div class="paragraph" data-content-type="${doc.contentType}" id="${doc.methodId}-content-type"><p><strong>Content-Type:&nbsp;</strong>${doc.contentType}</p></div><div class="paragraph"><p><strong>Description:&nbsp;</strong>${htmlEscape(doc.detail)}</p></div><%if(isNotEmpty(doc.requestHeaders)&&displayRequestParams){%><div class="paragraph"><p><strong>Request-headers:</strong></p></div><table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Header</th><th class="tableblock halign-left valign-top">Type</th><th class="tableblock halign-left valign-top">Description</th><th class="tableblock halign-left valign-top">Required</th><th class="tableblock halign-left valign-top">Since</th></tr></thead><tbody><%for(header in doc.requestHeaders){%><tr><td class="tableblock halign-left valign-top"><p class="tableblock">${header.name}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${header.type}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${htmlEscape(header.desc)}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${header.required}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${header.since}</p></td></tr><%}%></tbody></table><%}%><%if(isNotEmpty(doc.pathParams)&&displayRequestParams){%><div class="paragraph"><p><strong>Path-parameters:</strong></p></div><table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Parameter</th><th class="tableblock halign-left valign-top">Type</th><th class="tableblock halign-left valign-top">Description</th><th class="tableblock halign-left valign-top">Required</th><th class="tableblock halign-left valign-top">Since</th></tr></thead><tbody><%for(param in doc.pathParams){%><tr><td class="tableblock halign-left valign-top"><p class="tableblock">${param.field}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.type}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.desc}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.required}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.version}</p></td></tr><%}%></tbody></table><%}%><%if(isNotEmpty(doc.queryParams)&&displayRequestParams){%><div class="paragraph"><p><strong>Query-parameters:</strong></p></div><table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Parameter</th><th class="tableblock halign-left valign-top">Type</th><th class="tableblock halign-left valign-top">Description</th><th class="tableblock halign-left valign-top">Required</th><th class="tableblock halign-left valign-top">Since</th></tr></thead><tbody><%for(param in doc.queryParams){%><tr><td class="tableblock halign-left valign-top"><p class="tableblock">${param.field}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.type}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.desc}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.required}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.version}</p></td></tr><%}%></tbody></table><%}%><%if(isNotEmpty(doc.requestParams)&&displayRequestParams){%><div class="paragraph"><p><strong>Body-parameters:</strong></p></div><table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"><col style="width: 20%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Parameter</th><th class="tableblock halign-left valign-top">Type</th><th class="tableblock halign-left valign-top">Description</th><th class="tableblock halign-left valign-top">Required</th><th class="tableblock halign-left valign-top">Since</th></tr></thead><tbody><%for(param in doc.requestParams){%><tr><td class="tableblock halign-left valign-top"><p class="tableblock">${param.field}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.type}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.desc}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.required}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.version}</p></td></tr><%}%></tbody></table><%}%><%if(isNotEmpty(doc.requestUsage)&&isRequestExample){%><div class="paragraph"><p><strong>Request-example:</strong></p></div><div class="listingblock"><div class="content"><pre><code class="bash">${doc.requestUsage}</code></pre></div></div><%}%><%if(isNotEmpty(doc.responseParams)&&displayResponseParams){%><div class="paragraph"><p><strong>Response-fields:</strong></p></div><table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 25%;"><col style="width: 25%;"><col style="width: 25%;"><col style="width: 25%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Field</th><th class="tableblock halign-left valign-top">Type</th><th class="tableblock halign-left valign-top">Description</th><th class="tableblock halign-left valign-top">Since</th></tr></thead><tbody><%for(param in doc.responseParams){%><tr><td class="tableblock halign-left valign-top"><p class="tableblock">${param.field}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.type}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.desc}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${param.version}</p></td></tr><%}%></tbody></table><%}%><%if(isNotEmpty(doc.responseUsage)&&isResponseExample){%><div class="paragraph"><p><strong>Response-example:</strong></p></div><div class="listingblock"><div class="content"><pre><code class="json">${doc.responseUsage}</code></pre></div></div><%}%></div><%}%></div></div><%}%><%}%><%if(isNotEmpty(errorCodeList)){%><div class="sect1"><h2 id="_${errorListTitle}"><a class="anchor" href="#_${errorListTitle}"></a><a class="link" href="#_${errorListTitle}">${errorCodeListOrder}.${errorListTitle}</a></h2><div class="sectionbody"><table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 50%;"><col style="width: 50%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Error code</th><th class="tableblock halign-left valign-top">Description</th></tr></thead><tbody><%for(error in errorCodeList){%><tr><td class="tableblock halign-left valign-top"><p class="tableblock">${error.value}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${htmlEscape(error.desc)}</p></td></tr><%}%></tbody></table></div></div><%}%><%if(isNotEmpty(dictList)){%><div class="sect1"><h2 id="_${dictListTitle}"><a class="anchor" href="#_${dictListTitle}"></a><a class="link" href="#_dict_list">${dictListOrder}.${dictListTitle}</a></h2><div class="sectionbody"><%for(dict in dictList){%><div class="sect2"><h3 id="_${dictListOrder}_${dict.order}_${dict.title}"><a class="anchor" href="#_${dictListOrder}_${dict.order}_${dict.title}"></a><a class="link" href="#_${dictListOrder}_${dict.order}_${dict.title}">${dictListOrder}.${dict.order}.${htmlEscape(dict.title)}</a></h3><table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 33%;"><col style="width: 33%;"><col style="width: 33%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Code</th><th class="tableblock halign-left valign-top">Type</th><th class="tableblock halign-left valign-top">Description</th></tr></thead><tbody><%for(dataDict in dict.dataDictList){%><tr><td class="tableblock halign-left valign-top"><p class="tableblock">${dataDict.value}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${dataDict.type}</p></td><td class="tableblock halign-left valign-top"><p class="tableblock">${htmlEscape(dataDict.desc)}</p></td></tr><%}%></tbody></table></div><%}%></div></div><%}%><footer class="page-footer"><span class="copyright">Generated by smart-doc at ${createTime}</span><span class="footer-modification">Suggestions,contact,support and error reporting on<a href="https://gitee.com/smart-doc-team/smart-doc" target="_blank">&nbsp;Gitee&nbsp;</a>or<a href="https://github.com/smart-doc-group/smart-doc.git" target="_blank">&nbsp;Github</a></span></footer><div href="javascript:void(0)" id="toTop"><img id="upArrow" src="data:image/png;base64, "><span id="upText">Top</span></div></div><script src="search.js?v=${version}"></script><script>$(function(){const Accordion=function(el,multiple){this.el=el||{};this.multiple=multiple||false;const links=this.el.find(".dd");links.on("click",{el:this.el,multiple:this.multiple},this.dropdown)};Accordion.prototype.dropdown=function(e){const $el=e.data.el;const $this=$(this),$next=$this.next();$next.slideToggle();$this.parent().toggleClass("open");if(!e.data.multiple){$el.find(".submenu").not($next).slideUp("20").parent().removeClass("open")}};new Accordion($("#accordion"),false);hljs.highlightAll();$(window).scroll(function(){if($(window).scrollTop()>100){let $toTop=$("#toTop");$toTop.fadeIn(1500);$toTop.hover(function(){$("#upArrow").hide();$("#upText").show()},function(){$("#upArrow").show();$("#upText").hide()})}else{$("#toTop").fadeOut(1500)}});$("#toTop").click(function(){$("body, html").animate({scrollTop:0},1000);return false})});</script></body></html>