111 lines
14 KiB
HTML
111 lines
14 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8"><title>接口文档(apidoc生成)</title>
|
|
<style type="text/css">
|
|
body {text-align: center;margin:auto;}
|
|
a{text-decoration: none;}
|
|
.table {margin: auto;border-collapse: collapse;border-spacing: 0;display: block;width: 100%;overflow: auto;word-break: normal;word-break: keep-all;}
|
|
.table td,.table th{padding: 0.2rem 0.8rem 0.2rem 0.8rem;border: 1px solid #aaa;}
|
|
.table td {text-align: left;}
|
|
.s {font-size: 0.8rem; vertical-align: middle;}
|
|
.subtable {border-spacing: 0;border: 0;margin:0;}
|
|
.subtable td{border: 0;padding: 0 0 0 10px;}
|
|
.typetable {border-spacing: 0;border: 0;margin:0;}
|
|
.typetable td{border: 0;padding: 2px 20px 2px 10px;}
|
|
.typetable .l{border-bottom: 1px solid red;}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<script>
|
|
var createhtml = function (jsoncontent) {
|
|
var classmap = jsoncontent.types;
|
|
var html = [];
|
|
html.push('<div style="width:' + Math.floor(window.screen.width * 0.9) + 'px;margin:0 auto;text-align: center;">');
|
|
html.push('<br/><br/><table class="table" align="center">');
|
|
for (var i = 0; i < jsoncontent.servers.length; i++) {
|
|
var servlets = jsoncontent.servers[i].servlets;
|
|
if (servlets.length && (servlets[0].comment || "").indexOf("【") === 0) {
|
|
servlets.sort(function (a, b) {
|
|
return a.comment > b.comment ? -1 : (a.comment == b.comment ? 0 : 1);
|
|
});
|
|
}
|
|
for (var j = 0; j < servlets.length; j++) {
|
|
var servlet = servlets[j];
|
|
if (html.length > 2) html.push(' <tr><th colspan="5" style="border-bottom:0;"> </th></tr>');
|
|
html.push(' <tr><th colspan="5" style="border-top:' + ((html.length > 2) ? 0 : 1) + ';">' + (servlet.comment || '未知模块') + '</th></tr>');
|
|
html.push(' <tr><th>请求URL</th><th>描 述</th><th>鉴 权</th><th>参 数 <span style="font-size:12px;">(粗体: 必填项; 红色: Header; 蓝色: Cookie)</span></th><th>输 出</th></tr>');
|
|
for (var k = 0; k < servlet.mappings.length; k++) {
|
|
var action = servlet.mappings[k];
|
|
html.push(' <tr>');
|
|
html.push('<td style="color:#ff00ff;">' + action.url + '</td>');
|
|
html.push('<td>' + action.comment + '</td>');
|
|
html.push('<td class="s" style="width:80px;">模块ID: ' + servlet.moduleid + '<br/>操作ID: ' + action.actionid + '<br/>需鉴权: ' + (action.auth ? '<font style="font-weight:bold;color:green;">true</font>' : '<font color=red>false</font>') + '</td>');
|
|
var paramshtml = [];
|
|
paramshtml.push('<table class="subtable">');
|
|
for (var p = 0; p < action.params.length; p++) {
|
|
var param = action.params[p];
|
|
var t = param.type.substring(param.type.lastIndexOf('.') + 1);
|
|
if (classmap[param.type.replace('[]', '')]) {
|
|
t = '<a href="#' + param.type.replace('[]', '') + '">' + t + '</a>';
|
|
}
|
|
if (param.name == '&') {
|
|
paramshtml.push('<tr><td style="font-size:12px;">内置 </td><td> ' + t + '</td><td> 当前用户</td></tr>');
|
|
} else {
|
|
var w = param.required ? "font-weight:bold;" : "";
|
|
var c = ' style="' + w + '"';
|
|
if (param.src == "HEADER") c = ' style="color:red;' + w + '"';
|
|
if (param.src == "COOKIE") c = ' style="color:blue;' + w + '"';
|
|
paramshtml.push('<tr><td ' + c + '> ' + param.name + ' </td><td> ' + t + '</td><td> ' + param.comment + '</td></tr>');
|
|
}
|
|
}
|
|
paramshtml.push('</table>');
|
|
html.push('<td class="s" style="padding:0 5px;">' + paramshtml.join('') + '</td>');
|
|
var rs = [];
|
|
rs.push(action.result.replace(/</g, "<").replace(/>/g, ">").replace(/([a-zA-Z0-9_\$]+\.)+/g, ""));
|
|
var results = action.results || [];
|
|
for (var r = 0; r < results.length; r++) {
|
|
rs.push('<a href="#' + results[r].replace('[]', '') + '">' + results[r].replace(/([a-zA-Z0-9_\$]+\.)+/g, "") + '</a>');
|
|
}
|
|
html.push('<td>' + rs.join("<br/>") + '</td>');
|
|
html.push('</tr>');
|
|
}
|
|
}
|
|
}
|
|
for (var type in classmap) {
|
|
html.push(' <tr><th colspan="5" style="border-bottom:0;"> </th></tr>');
|
|
html.push(' <tr id="' + type + '"><th colspan="5" style="border-top:0;">' + type + '</th></tr>');
|
|
html.push(' <tr><td colspan="5"><table class="typetable">');
|
|
for (var fieldname in classmap[type]) {
|
|
var field = classmap[type][fieldname];
|
|
var t = field.type.replace(/</g, "<").replace(/>/g, ">").replace(/\$/g, ".").replace(/([a-zA-Z0-9_\$]+\.)+/g, "");
|
|
if (t == 'boolean' || t == 'short' || t == 'int' || t == 'long' || t == 'float' || t == 'double'
|
|
|| t == 'boolean[]' || t == 'short[]' || t == 'int[]' || t == 'long[]' || t == 'float[]' || t == 'double[]') {
|
|
t = '<font color=blue>' + t + '</font>';
|
|
} else if (t == 'String' || t == 'String[]' || t == 'LongRange' || t.indexOf('Map<') === 0) {
|
|
t = '<font color=red>' + t + '</font>';
|
|
}
|
|
var c = (field.comment || '');
|
|
if (field.primary) {
|
|
c = '【主键】 ' + c;
|
|
} else if (!field.updatable) {
|
|
c = '【只读】 ' + c;
|
|
}
|
|
html.push(' <tr class="l"><td>' + fieldname + '</td><td>' + t + '</td><td colspan="2">' + c + '</td></tr>');
|
|
}
|
|
html.push(' </table></td></tr>');
|
|
}
|
|
html.push('</table><br/><br/><br/>');
|
|
html.push('</div>');
|
|
return html.join('');
|
|
};
|
|
</script>
|
|
|
|
<script>
|
|
var jsoncontent = {"servers":[{"address":"0.0.0.0:80","servlets":[{"urlregs":["/meta/*"],"moduleid":0,"name":"","comment":"元数据服务","mappings":[{"url":"/meta/db_plat_list","auth":true,"actionid":0,"comment":"数据平台","params":[],"results":[],"result":"java.util.List<net.tccn.dbq.DbPlat>"},{"url":"/meta/exportsort","auth":true,"actionid":0,"comment":"导出字段排序保存","params":[{"name":"serviceKey","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"items","radix":10,"type":"java.util.List","src":"PARAMETER","comment":"","required":true},{"name":"platToken","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"java.util.List<java.lang.String>"},{"url":"/meta/filter_update","auth":true,"actionid":0,"comment":"查询配置修改","params":[{"name":"serviceKey","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"filters","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"platToken","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"net.tccn.base.JBean"},{"url":"/meta/findMetaTable","auth":true,"actionid":0,"comment":"","params":[{"name":"name","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"token","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"net.tccn.meta.MetaTable"},{"url":"/meta/importsort","auth":true,"actionid":0,"comment":"导入字段保存","params":[{"name":"serviceKey","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"items","radix":10,"type":"java.util.List","src":"PARAMETER","comment":"","required":true},{"name":"platToken","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"java.util.List<java.lang.String>"},{"url":"/meta/itemsort","auth":true,"actionid":0,"comment":"字段排序","params":[{"name":"serviceKey","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"items","radix":10,"type":"java.lang.String[]","src":"PARAMETER","comment":"","required":true},{"name":"platToken","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"[Ljava.lang.String;"},{"url":"/meta/itemupdate","auth":true,"actionid":0,"comment":"字段修改","params":[{"name":"serviceKey","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"items","radix":10,"type":"java.util.List","src":"PARAMETER","comment":"","required":true},{"name":"platToken","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"java.util.List<net.tccn.dbq.Field>"},{"url":"/meta/listcfg","auth":false,"actionid":0,"comment":"内容列表配置","params":[{"name":"key","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"platToken","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"net.tccn.base.JBean"},{"url":"/meta/showsort","auth":true,"actionid":0,"comment":"展示字段修改","params":[{"name":"serviceKey","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"items","radix":10,"type":"java.util.List","src":"PARAMETER","comment":"","required":true},{"name":"platToken","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"java.util.List<java.lang.String>"},{"url":"/meta/tableinfo","auth":true,"actionid":0,"comment":"table详情","params":[{"name":"platToken","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"name","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"net.tccn.base.JBean"},{"url":"/meta/tablelist","auth":true,"actionid":0,"comment":"table列表","params":[{"name":"platToken","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"catalog","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"dbPlatId","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"name","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"net.tccn.base.JBean"}]},{"urlregs":["/qtask/test","/qtask/call","/qtask/getSysPlat","/qtask/qsave"],"moduleid":0,"name":"","comment":"qtask查询服务","mappings":[{"url":"/qtask/call","auth":true,"actionid":0,"comment":"qtask查询","params":[{"name":"queryId","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"para","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true},{"name":"platToken","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"net.tccn.base.JBean"},{"url":"/qtask/getSysPlat","auth":true,"actionid":0,"comment":"","params":[{"name":"token","radix":10,"type":"java.lang.String","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"net.tccn.dbq.qtask.SysPlat"},{"url":"/qtask/qsave","auth":true,"actionid":0,"comment":"qtask保存","params":[{"name":"qtask","radix":10,"type":"net.tccn.dbq.qtask.Qtask","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"net.tccn.base.JBean"},{"url":"/qtask/test","auth":true,"actionid":0,"comment":"qtask调试","params":[{"name":"qtask","radix":10,"type":"net.tccn.dbq.qtask.Qtask","src":"PARAMETER","comment":"","required":true}],"results":[],"result":"net.tccn.base.JBean"}]}]}],"types":{"net.tccn.dbq.qtask.Qtask":{"queryId":{"type":"java.lang.String","primary":false,"updatable":true},"name":{"type":"java.lang.String","primary":false,"updatable":true},"remark":{"type":"java.lang.String","primary":false,"updatable":true},"sql":{"type":"java.lang.String","primary":false,"updatable":true},"para":{"type":"java.lang.String","primary":false,"updatable":true},"cate":{"type":"java.lang.String","primary":false,"updatable":true},"sysPlatId":{"type":"java.lang.Integer","primary":false,"updatable":true},"platId":{"type":"java.lang.Integer","primary":false,"updatable":true},"catalog":{"type":"java.lang.String","primary":false,"updatable":true},"status":{"type":"java.lang.Integer","primary":false,"updatable":true},"attr":{"type":"java.util.HashMap","primary":false,"updatable":true},"_id":{"type":"java.lang.String","primary":false,"updatable":true},"_key":{"type":"java.lang.String","primary":false,"updatable":true},"_shows":{"type":"java.util.Set<java.lang.String>","primary":false,"updatable":true},"_order":{"type":"java.util.Map","primary":false,"updatable":true},"fieldName":{"type":"java.util.function.Function<java.lang.String, java.lang.String>","primary":false,"updatable":true},"arangoSource":{"type":"net.tccn.base.arango.ArangoSource","primary":false,"updatable":true},"db":{"type":"com.arangodb.ArangoDatabase","primary":false,"updatable":true},"collection":{"type":"com.arangodb.ArangoCollection","primary":false,"updatable":true}}}}; //这里必须要用单引号引起来
|
|
document.write(createhtml(jsoncontent));
|
|
</script>
|
|
</body>
|
|
</html>
|