diff --git a/zyplayer-doc-manage/WEB-INF/web.xml b/zyplayer-doc-manage/WEB-INF/web.xml new file mode 100644 index 00000000..d80081d1 --- /dev/null +++ b/zyplayer-doc-manage/WEB-INF/web.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/zyplayer-doc-swagger/src/main/resources/document.html b/zyplayer-doc-swagger/src/main/resources/document.html index a27d036c..7ebf091a 100644 --- a/zyplayer-doc-swagger/src/main/resources/document.html +++ b/zyplayer-doc-swagger/src/main/resources/document.html @@ -1,406 +1,407 @@ - - - - - - 接口文档管理系统 - zyplayer - - - - - - - -
-
- - -
-
- - -
-
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    工具介绍
    -
    -
    -
    - zyplayer-doc-swagger是swagger文档的管理工具,使用简单、解析速度快、走心的设计, - 支持多项目同时展示,多种文档目录的展示方案,多种自定义配置,满足各种使用习惯。 - 本项目是完全从头写的,所以有任何属性未解析到、UI上有何建议都能及时处理得到。 - 使用中您有任何的意见和建议都可到源码地址处反馈哦!
    - 源码地址:zyplayer-doc-swagger(还有其他很多功能哦), - 前端框架:zui(很不错), - 我的网站:空间轴自由发挥(都已很久未维护) -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    - 每次点击在线调试的发送请求后,都会默认保存一次请求的form、header、body数据到网页的本地存储中,以备下次使用,在此页面可以管理这些数据。 - 一般浏览都有5M左右存储空间,如果存储过多有可能会导致部分功能异常,请随时清理一下不再使用的。 -
    - - - - -
    - - - - - -
    接口地址参数配置操作
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    接口地址
    说明
    请求方式
    consumes
    produces
    test
    请求参数 - -
    -
    - - - - - -
    参数名说明类型参数位置是否必填
    -
    -
    - - - - - -
    参数名说明类型参数位置是否必填
    -
    -
    -
    响应Model - -
    -
    - - - - - -
    状态码说明
    -
    -
    - - - - - -
    状态码说明
    -
    -
    -
    -
    -
    -
    -
    - -
    - - -
    - - - - -
    -
    -
    -
    -
    -
    -

    - 请求头 - -

    -
    -
    -
    - - - - - - - - -
    - -
    -
    -
    -
    -
    -

    - 请求参数 -

    -
    -
    -
    - -
    -
    - - - - - - - - -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    - - - - - - - - -
    名字
    -
    -
    - - - - - - - - -
    名字
    -
    -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - -
    接口地址
    测试地址 
    返回内容
    操作 - -
    -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - + + + + + + 接口文档管理系统 - zyplayer + + + + + + + +
    +
    + + +
    +
    + + +
    +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      工具介绍
      +
      +
      +
      + zyplayer-doc-swagger是swagger文档的管理工具,使用简单、解析速度快、走心的设计, + 支持多项目同时展示,多种文档目录的展示方案,多种自定义配置,满足各种使用习惯。 + 本项目是完全从头写的,所以有任何属性未解析到、UI上有何建议都能及时处理得到。 + 使用中您有任何的意见和建议都可到源码地址处反馈哦!
      + 源码地址:zyplayer-doc-swagger(还有其他很多功能哦), + 前端框架:zui(很不错), + 我的网站:空间轴自由发挥(都已很久未维护) +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + +
      +
      +
      + 每次点击在线调试的发送请求后,都会默认保存一次请求的form、header、body数据到网页的本地存储中,以备下次使用,在此页面可以管理这些数据。 + 一般浏览都有5M左右存储空间,如果存储过多有可能会导致部分功能异常,请随时清理一下不再使用的。 +
      + + + + +
      + + + + + +
      接口地址参数配置操作
      +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      接口地址
      说明
      请求方式
      consumes
      produces
      test
      请求参数 + +
      +
      + + + + + +
      参数名说明类型参数位置是否必填
      +
      +
      + + + + + +
      参数名说明类型参数位置是否必填
      +
      +
      +
      响应Model + +
      +
      + + + + + +
      状态码说明
      +
      +
      + + + + + +
      状态码说明
      +
      +
      +
      +
      +
      +
      +
      + +
      + + +
      + + + + +
      +
      +
      +
      +
      +
      +

      + 请求头 + +

      +
      +
      +
      + + + + + + + + +
      + +
      +
      +
      +
      +
      +

      + 请求参数 +

      +
      +
      +
      + +
      +
      + + + + + + + + +
      + +
      +
      + +
      +
      +
      +
      +
      +
      +
      + +
      +
      + +
      +
      +
      + + + + + + + + +
      名字
      +
      +
      + + + + + + + + +
      名字
      +
      +
      +
      +
      +
      +
      + + + + + + + + + + + + + + + + + +
      接口地址
      测试地址 
      返回内容
      操作 + +
      +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + diff --git a/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/common.js b/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/common.js index b82a6538..9d2cc678 100644 --- a/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/common.js +++ b/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/common.js @@ -1,314 +1,322 @@ -/** - * 一些公用方法 - * @author 暮光:城中城 - * @since 2017年5月7日 -*/ - -function serialize(value) { - if (typeof value === 'string') { - return value; - } - return JSON.stringify(value); -} - -function deserialize(value) { - if (typeof value !== 'string' || isEmpty(value)) { - return undefined; - } - try { - return JSON.parse(value); - } catch (e) { - try { - return eval('(' + value + ')');// 处理变态的单双引号共存字符串 - } catch (e) { - return value || undefined; - } - } -} - -function validateResult(result) { - if(result.errCode == 200) { - return true; - } else { - Toast.error(result.errMsg); - } - return false; -} - -function getNowDate() { - var date = new Date(); - var month = date.getMonth() + 1; - var strDate = date.getDate(); - if (month >= 1 && month <= 9) { - month = "0" + month; - } - if (strDate >= 0 && strDate <= 9) { - strDate = "0" + strDate; - } - var currentdate = date.getFullYear() + "-" + month + "-" + strDate; - return currentdate; -} - -function getNowTime() { - var date = new Date(); - var hours = date.getHours(); - var minutes = date.getMinutes(); - var seconds = date.getSeconds(); - if (hours >= 1 && hours <= 9) { - hours = "0" + hours; - } - if (minutes >= 0 && minutes <= 9) { - minutes = "0" + minutes; - } - if (seconds >= 0 && seconds <= 9) { - seconds = "0" + seconds; - } - var currentdate = hours + ":" + minutes + ":" + seconds; - return currentdate; -} - -function getNowDateTime() { - var currentdate = getNowDate() + " " + getNowTime(); - return currentdate; -} - -/** - * 返回不为空的字符串,为空返回def - */ -function getNotEmptyStr(str, def) { - if (isEmpty(str)) { - return isEmpty(def) ? "" : def; - } - return str; -} - -/** - * 是否是空对象 - * @param obj - * @returns - */ -function isEmptyObject(obj){ - return $.isEmptyObject(obj); -} - -/** - * 是否是空字符串 - * @param str - * @returns - */ -function isEmpty(str){ - return (str == "" || str == null || str == undefined); -} - -/** - * 是否不是空字符串 - * @param str - * @returns - */ -function isNotEmpty(str){ - return !isEmpty(str); -} - -/** - * 数组转字符串,使用空格分隔 - * @param array - * @returns - */ -function arrToString(array){ - var temStr = ""; - if(isEmpty(array)){ - return temStr; - } - array.forEach(function(e){ - if(isNotEmpty(temStr)) { - temStr += " "; - } - temStr += e; - }); - return temStr; -} - -/** - * 数组array中是否包含str字符串 - * @param array - * @param str - * @returns - */ -function haveString(array, str){ - if(isEmpty(array)) { - return false; - } - for (var i = 0; i < array.length; i++) { - if(array[i] == str) { - return true; - } - } - return false; -} - -/** - * 直接返回对象的第一个属性 - * @param data - * @returns - */ -function getObjectFirstAttribute(data) { - for ( var key in data) { - return data[key]; - } -} - -/** - * 如果对象只有一个属性则返回第一个属性,否则返回null - * @param data - * @returns - */ -function getObjectFirstAttributeIfOnly(data) { - var len = 0, value = ""; - for ( var key in data) { - if (++len > 1) { - return null; - } - value = data[key]; - } - return value; -} - -/** - * ajax处理事件模板 - * - * @url 后台处理的url,即action - * @dataSentType 数据发送的方式,有post,get方式 - * @dataReceiveType 数据接收格式,有html json text等 - * @paramsStr 传入后台的参数 - * @successFunction ajax成功后执行的函数名 ajaxTemp("", "GET", "html", {}, function(){}, - * function(){}, ""); - */ -function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction, errorFunction, completeFunction, id) { - $.ajax({ - url : url, // 后台处理程序 - sync : false, - type : dataSentType, // 数据发送方式 - dataType : dataReceiveType, // 接受数据格式 - data : eval(paramsStr), - contentType : "application/x-www-form-urlencoded; charset=UTF-8", - success : function(msg) { - if(typeof successFunction == "function") { - successFunction(msg,id); - } - }, - beforeSend : function() { - - }, - complete : function(msg) { - if(typeof completeFunction == "function") { - completeFunction(msg,id); - } - }, - error : function(msg) { - if(typeof errorFunction == "function") { - errorFunction(msg,id); - } - } - }); -} - -/** - * 获取cookie - * @param name - * @returns - */ -function getCookie(name) { - var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); - if(arr=document.cookie.match(reg)){ - return unescape(arr[2]); - } - return null; -} - -/** - * 字符串格式化 - */ -String.prototype.format = function(args) { - if (arguments.length > 0) { - var result = this; - if (arguments.length == 1 && typeof (args) == "object") { - for ( var key in args) { - var reg = new RegExp("({" + key + "})", "g"); - result = result.replace(reg, args[key]); - } - } else { - for (var i = 0; i < arguments.length; i++) { - if (arguments[i] == undefined) { - return ""; - } else { - var reg = new RegExp("({[" + i + "]})", "g"); - result = result.replace(reg, arguments[i]); - } - } - } - return result; - } else { - return this; - } -} - -String.prototype.endWith = function(str) { - if (str == null || str == "" || this.length == 0 || str.length > this.length) { - return false; - } - return (this.substring(this.length - str.length) == str); -}; - -String.prototype.startWith = function(str) { - if (str == null || str == "" || this.length == 0 || str.length > this.length) { - return false; - } - return (this.substr(0, str.length) == str); -}; - -/** - * 获取数据,异步的操作 - */ -function getStorage(key, success, fail) { - var start = (typeof urlBase === 'string') ? urlBase : ''; - ajaxTemp(start + "swagger-mg-ui/storage/data", "get", "json", {key: key}, function(json){ - if(json.errCode == 200) { - if(typeof success == "function") { - var result = deserialize(json.data); - success(result); - } - } else { - if(typeof fail == "function") { - fail(); - } - } - }, function(msg){ - if(typeof fail == "function") { - fail(); - } - }); -} - -/** - * 存储数据,异步的操作 - */ -function setStorage(key, value, success, fail) { - value = $.zui.store.serialize(value); - var start = (typeof urlBase === 'string') ? urlBase : ''; - ajaxTemp(start + "swagger-mg-ui/storage/data", "post", "json", {key: key, value: value}, function(json){ - if(json.errCode == 200) { - if(typeof success == "function") { - success(); - } - } else { - if(typeof fail == "function") { - fail(getNotEmptyStr(json.errMsg)); - } - } - }, function(msg){ - if(typeof fail == "function") { - fail(""); - } - console.log("存储数据到服务器失败,请检查"); - }); +/** + * 一些公用方法 + * @author 暮光:城中城 + * @since 2017年5月7日 +*/ + +function serialize(value) { + if (typeof value === 'string') { + return value; + } + return JSON.stringify(value); +} + +function deserialize(value) { + if (typeof value !== 'string' || isEmpty(value)) { + return undefined; + } + try { + return JSON.parse(value); + } catch (e) { + try { + return eval('(' + value + ')');// 处理变态的单双引号共存字符串 + } catch (e) { + return value || undefined; + } + } +} + +function validateResult(result) { + if(result.errCode == 200) { + return true; + } else { + Toast.error(result.errMsg); + } + return false; +} + +function getNowDate() { + var date = new Date(); + var month = date.getMonth() + 1; + var strDate = date.getDate(); + if (month >= 1 && month <= 9) { + month = "0" + month; + } + if (strDate >= 0 && strDate <= 9) { + strDate = "0" + strDate; + } + var currentdate = date.getFullYear() + "-" + month + "-" + strDate; + return currentdate; +} + +function getNowTime() { + var date = new Date(); + var hours = date.getHours(); + var minutes = date.getMinutes(); + var seconds = date.getSeconds(); + if (hours >= 1 && hours <= 9) { + hours = "0" + hours; + } + if (minutes >= 0 && minutes <= 9) { + minutes = "0" + minutes; + } + if (seconds >= 0 && seconds <= 9) { + seconds = "0" + seconds; + } + var currentdate = hours + ":" + minutes + ":" + seconds; + return currentdate; +} + +function getNowDateTime() { + var currentdate = getNowDate() + " " + getNowTime(); + return currentdate; +} + +/** + * 返回不为空的字符串,为空返回def + */ +function getNotEmptyStr(str, def) { + if (isEmpty(str)) { + return isEmpty(def) ? "" : def; + } + return str; +} + +/** + * 是否是空对象 + * @param obj + * @returns + */ +function isEmptyObject(obj){ + return $.isEmptyObject(obj); +} + +/** + * 是否是空字符串 + * @param str + * @returns + */ +function isEmpty(str){ + return (str == "" || str == null || str == undefined); +} + +/** + * 是否不是空字符串 + * @param str + * @returns + */ +function isNotEmpty(str){ + return !isEmpty(str); +} + +/** + * 数组转字符串,使用空格分隔 + * @param array + * @returns + */ +function arrToString(array){ + var temStr = ""; + if(isEmpty(array)){ + return temStr; + } + array.forEach(function(e){ + if(isNotEmpty(temStr)) { + temStr += " "; + } + temStr += e; + }); + return temStr; +} + +/** + * 数组array中是否包含str字符串 + * @param array + * @param str + * @returns + */ +function haveString(array, str){ + if(isEmpty(array)) { + return false; + } + for (var i = 0; i < array.length; i++) { + if(array[i] == str) { + return true; + } + } + return false; +} + +/** + * 直接返回对象的第一个属性 + * @param data + * @returns + */ +function getObjectFirstAttribute(data) { + for ( var key in data) { + return data[key]; + } +} + +/** + * 如果对象只有一个属性则返回第一个属性,否则返回null + * @param data + * @returns + */ +function getObjectFirstAttributeIfOnly(data) { + var len = 0, value = ""; + for ( var key in data) { + if (++len > 1) { + return null; + } + value = data[key]; + } + return value; +} + +/** + * ajax处理事件模板 + * + * @url 后台处理的url,即action + * @dataSentType 数据发送的方式,有post,get方式 + * @dataReceiveType 数据接收格式,有html json text等 + * @paramsStr 传入后台的参数 + * @successFunction ajax成功后执行的函数名 ajaxTemp("", "GET", "html", {}, function(){}, + * function(){}, ""); + */ +function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction, errorFunction, completeFunction, id) { + $.ajax({ + url : url, // 后台处理程序 + sync : false, + type : dataSentType, // 数据发送方式 + dataType : dataReceiveType, // 接受数据格式 + data : eval(paramsStr), + contentType : "application/x-www-form-urlencoded; charset=UTF-8", + success : function(msg) { + if(typeof successFunction == "function") { + successFunction(msg,id); + } + }, + beforeSend : function() { + + }, + complete : function(msg) { + if(typeof completeFunction == "function") { + completeFunction(msg,id); + } + }, + error : function(msg) { + if(typeof errorFunction == "function") { + errorFunction(msg,id); + } + } + }); +} + +/** + * 获取cookie + * @param name + * @returns + */ +function getCookie(name) { + var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); + if(arr=document.cookie.match(reg)){ + return unescape(arr[2]); + } + return null; +} + +/** + * 字符串格式化 + */ +String.prototype.format = function(args) { + if (arguments.length > 0) { + var result = this; + if (arguments.length == 1 && typeof (args) == "object") { + for ( var key in args) { + var reg = new RegExp("({" + key + "})", "g"); + result = result.replace(reg, args[key]); + } + } else { + for (var i = 0; i < arguments.length; i++) { + if (arguments[i] == undefined) { + return ""; + } else { + var reg = new RegExp("({[" + i + "]})", "g"); + result = result.replace(reg, arguments[i]); + } + } + } + return result; + } else { + return this; + } +} + +String.prototype.endWith = function(str) { + if (str == null || str == "" || this.length == 0 || str.length > this.length) { + return false; + } + return (this.substring(this.length - str.length) == str); +}; + +String.prototype.startWith = function(str) { + if (str == null || str == "" || this.length == 0 || str.length > this.length) { + return false; + } + return (this.substr(0, str.length) == str); +}; + +/** + * 获取数据,异步的操作 + */ +function getStorage(key, success, fail) { + var start = (typeof urlBase === 'string') ? urlBase : ''; + ajaxTemp(start + "swagger-mg-ui/storage/data", "get", "json", {key: key}, function(json){ + if(json.errCode == 200) { + if(typeof success == "function") { + var result = deserialize(json.data); + success(result); + } + } else { + if(typeof fail == "function") { + fail(); + } + } + }, function(msg){ + if(typeof fail == "function") { + fail(); + } + }); +} + +/** + * 存储数据,异步的操作 + */ +function setStorage(key, value, success, fail) { + value = $.zui.store.serialize(value); + var start = (typeof urlBase === 'string') ? urlBase : ''; + ajaxTemp(start + "swagger-mg-ui/storage/data", "post", "json", {key: key, value: value}, function(json){ + if(json.errCode == 200) { + if(typeof success == "function") { + success(); + } + } else { + if(typeof fail == "function") { + fail(getNotEmptyStr(json.errMsg)); + } + } + }, function(msg){ + if(typeof fail == "function") { + fail(""); + } + console.log("存储数据到服务器失败,请检查"); + }); +} + +/** + * 获取父窗口的exports + * @returns + */ +function getExport(){ + return window.parent.window.exports; } \ No newline at end of file diff --git a/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/mg-ui-cache-keys.js b/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/mg-ui-cache-keys.js new file mode 100644 index 00000000..05a2b146 --- /dev/null +++ b/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/mg-ui-cache-keys.js @@ -0,0 +1,5 @@ +var cacheKeys = { + userSettings: 'userSettings', + swaggerResourcesList: 'swagger-resources-list', + globalParamList: 'zyplayer-doc-global-param-list', +} \ No newline at end of file diff --git a/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/mg-ui-export.js b/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/mg-ui-export.js new file mode 100644 index 00000000..066a6647 --- /dev/null +++ b/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/mg-ui-export.js @@ -0,0 +1,14 @@ +var exports = { + regeneratePathTree: function(){ + // 定义在mg-ui.js,用于重新生成文档树目录 + regeneratePathTree(); + }, + updateUserSettings: function(setting){ + // 定义在mg-ui.js,用于更新用户设置 + updateUserSettings(setting); + }, + exportDocument: function(){ + // 定义在mg-ui.js,用于打开导出文档框 + exportDocument(); + } +}; \ No newline at end of file diff --git a/zyplayer-doc-swagger/src/main/resources/webjars/zpages/docShowConfig.html b/zyplayer-doc-swagger/src/main/resources/webjars/zpages/docShowConfig.html index bdbdcd07..ed0557ac 100644 --- a/zyplayer-doc-swagger/src/main/resources/webjars/zpages/docShowConfig.html +++ b/zyplayer-doc-swagger/src/main/resources/webjars/zpages/docShowConfig.html @@ -1,139 +1,140 @@ - - - - - -文档展示配置 - - - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      参数名参数值说明
      目录展示方式 - - - 分路径:/api/data/getDataList 分标签:/api└/data└/getDateList└post└get
      树形菜单展示方式 - - - - - - 请自行修改体验
      是否展示字段的类型 - - - 文档中是否展示类型:"reference": "(boolean)"
      仅使用上次请求参数 - - - 每个接口都使用最后一次请求的header、form、body参数,参数列表有但上一次请求没有使用的则不会展示在请求参数里面,从未请求过则展示所有参数
      自动填充请求参数 - - - - 否:不填充,智能填充:只填充flag、time等后缀的参数,全部填充:对应不上类型的使用“我是默认字符串”填充
      -
      - - - - - - - - - - - - - + + + + + +文档展示配置 + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      参数名参数值说明
      目录展示方式 + + + 分路径:/api/data/getDataList 分标签:/api└/data└/getDateList└post└get
      树形菜单展示方式 + + + + + + 请自行修改体验
      是否展示字段的类型 + + + 文档中是否展示类型:"reference": "(boolean)"
      仅使用上次请求参数 + + + 每个接口都使用最后一次请求的header、form、body参数,参数列表有但上一次请求没有使用的则不会展示在请求参数里面,从未请求过则展示所有参数
      自动填充请求参数 + + + + 否:不填充,智能填充:只填充flag、time等后缀的参数,全部填充:对应不上类型的使用“我是默认字符串”填充
      +
      + + + + + + + + + + + + + + diff --git a/zyplayer-doc-swagger/src/main/resources/webjars/zpages/docUrlConfig.html b/zyplayer-doc-swagger/src/main/resources/webjars/zpages/docUrlConfig.html index 6c6aa7a8..39e8d62b 100644 --- a/zyplayer-doc-swagger/src/main/resources/webjars/zpages/docUrlConfig.html +++ b/zyplayer-doc-swagger/src/main/resources/webjars/zpages/docUrlConfig.html @@ -1,140 +1,136 @@ - - - - - -文档地址管理 - - - - -
      - - - - - - - - - - - - - - - - - - -
      序号地址操作
      {{index+1}}{{item}} - -
      - - - -
      - - -
      - - - - - - - - - - - - - - + + + + + +文档地址管理 + + + + +
      + + + + + + + + + + + + + + + + + + +
      序号地址操作
      {{index+1}}{{item}} + +
      + + + +
      + + +
      + + + + + + + + + + + + + + + diff --git a/zyplayer-doc-swagger/src/main/resources/webjars/zpages/globalParamConfig.html b/zyplayer-doc-swagger/src/main/resources/webjars/zpages/globalParamConfig.html index 949ec177..847ae442 100644 --- a/zyplayer-doc-swagger/src/main/resources/webjars/zpages/globalParamConfig.html +++ b/zyplayer-doc-swagger/src/main/resources/webjars/zpages/globalParamConfig.html @@ -1,37 +1,112 @@ - - - - - -全局参数管理 - - - - -
      - 全局参数管理 -
      - - - - - - - - - - - - + + + + + + 全局参数管理 + + + + +
      +
      +
      Tips:所有接口的在线调试页面都将展示本页面配置的参数和值,可统一配置会话等数据
      +
      + + + + + + + + + + + + + + + + + + + + +
      参数位置参数名参数值操作
      + + + +
      + + + +
      +
      + + + + + + + + + + + + + + +