swagger增加自定义名字展示

This commit is contained in:
暮光:城中城
2019-08-25 22:43:14 +08:00
parent 607a97b51b
commit cbaee753cb
5 changed files with 44 additions and 14 deletions

View File

@@ -151,13 +151,14 @@ public class MgDocumentController {
if (indexV2 >= 0) {
resourcesUrl = location.getLocation().substring(0, indexV2);
}
// 本来想转对象之后赋值但是在此转成JSON字符串之后格式就不是之前的了不能转。。。
// 本来想转对象之后赋值但是在此转成JSON字符串之后格式就不是之前的了不能转。。。
// 直接字符串拼接,坑真多~
String rewriteDomainUrl = Optional.ofNullable(location.getRewriteDomainUrl()).orElse("");
resourceStr = resourceStr.substring(1);
resourceStr = "{\"fullUrl\":\"" + location.getLocation() + "\","
+ "\"domainUrl\":\"" + resourcesUrl + "\","
+ "\"rewriteDomainUrl\":\"" + rewriteDomainUrl + "\","
+ "\"customName\":\"" + location.getCustomName() + "\","
+ resourceStr;
swaggerResourceStrList.add(resourceStr);
} catch (Exception e) {
@@ -298,9 +299,10 @@ public class MgDocumentController {
* @return 添加结果
*/
@PostMapping(value = "/addSwaggerResources")
public ResponseJson<Object> addSwaggerResources(HttpServletRequest request, String swaggerJson, String resourcesUrl, String rewriteDomainUrl, String oldUrl, Integer openVisit) {
public ResponseJson<Object> addSwaggerResources(HttpServletRequest request, String swaggerJson, String resourcesUrl,
String rewriteDomainUrl, String oldUrl, Integer openVisit, String customName) {
// 通过json文档内容来添加
ResponseJson<Object> responseJson = this.addSwaggerJsonApiDocs(request, swaggerJson, resourcesUrl, rewriteDomainUrl, openVisit);
ResponseJson<Object> responseJson = this.addSwaggerJsonApiDocs(request, swaggerJson, resourcesUrl, rewriteDomainUrl, openVisit, customName);
if (responseJson != null) {
return responseJson;
}
@@ -329,7 +331,7 @@ public class MgDocumentController {
.addHeaders(this.getGlobalParamMap(globalParamList, "header"))
.header("Accept", "application/json, text/javascript, */*; q=0.01")
.timeout(docTimeout).execute().body();
boolean isLocation = this.addSwaggerLocationList(resourcesStr, rewriteDomainUrl, resourcesUrl, oldUrl, openVisit);
boolean isLocation = this.addSwaggerLocationList(resourcesStr, rewriteDomainUrl, resourcesUrl, oldUrl, openVisit, customName);
if (!isLocation) {
List<SwaggerResource> resourceList = JSON.parseArray(resourcesStr, SwaggerResource.class);
if (resourceList == null || resourceList.isEmpty()) {
@@ -363,7 +365,8 @@ public class MgDocumentController {
* @param swaggerJson swagger的文档内容
* @return 添加结果
*/
public ResponseJson<Object> addSwaggerJsonApiDocs(HttpServletRequest request, String swaggerJson, String resourcesUrl, String rewriteDomainUrl, Integer openVisit) {
public ResponseJson<Object> addSwaggerJsonApiDocs(HttpServletRequest request, String swaggerJson, String resourcesUrl,
String rewriteDomainUrl, Integer openVisit, String customName) {
if (StringUtils.isNotBlank(swaggerJson)) {
Integer nextId = 0;
String customUrl = resourcesUrl;
@@ -375,7 +378,7 @@ public class MgDocumentController {
customUrl = customUrl.substring(0, customUrl.lastIndexOf("/"));
customUrl = customUrl + Consts.PROXY_API_DOCS + "?id=" + nextId;
}
boolean addResult = this.addSwaggerLocationList(swaggerJson, rewriteDomainUrl, customUrl, customUrl, openVisit);
boolean addResult = this.addSwaggerLocationList(swaggerJson, rewriteDomainUrl, customUrl, customUrl, openVisit, customName);
if (addResult) {
storageService.put(StorageKeys.PROXY_API_DOCS + nextId, swaggerJson);
return DocResponseJson.ok();
@@ -462,7 +465,8 @@ public class MgDocumentController {
/**
* 直接添加地址
*/
private boolean addSwaggerLocationList(String resourcesStr, String rewriteDomainUrl, String locationUrl, String oldUrl, Integer openVisit) {
private boolean addSwaggerLocationList(String resourcesStr, String rewriteDomainUrl, String locationUrl,
String oldUrl, Integer openVisit, String customName) {
try {
SwaggerLocationVo swaggerLocationVo = null;
try {
@@ -489,6 +493,7 @@ public class MgDocumentController {
locationListVo.setLocation(locationUrl);
locationListVo.setRewriteDomainUrl(rewriteDomainUrl);
locationListVo.setOpenVisit(openVisit);
locationListVo.setCustomName(customName);
// 去除旧的,加入新的
locationList = locationList.stream().filter(val -> !Objects.equals(val.getLocation(), oldUrl)).collect(Collectors.toList());
locationList.add(locationListVo);

View File

@@ -12,6 +12,7 @@ public class LocationListVo {
private String location;
private String resources;
private Integer openVisit;
private String customName;
private String rewriteDomainUrl;
public LocationListVo(){
@@ -102,4 +103,12 @@ public class LocationListVo {
public void setOpenVisit(Integer openVisit) {
this.openVisit = openVisit;
}
public String getCustomName() {
return customName;
}
public void setCustomName(String customName) {
this.customName = customName;
}
}

View File

@@ -97,7 +97,8 @@ function getDocumentListByService() {
if (validateResult(json) && json.data.length >= 1) {
for (var i = 0; i < json.data.length; i++) {
var item = json.data[i];
$("#choiceLocationList .dropdown-menu").append('<li><a href="javascript:void(0);" data-location="' + item.location + '">' + item.name + '</a></li>');
var itemName = (!!item.customName) ? item.customName : item.name;
$("#choiceLocationList .dropdown-menu").append('<li><a href="javascript:void(0);" data-location="' + item.location + '">' + itemName + '</a></li>');
}
$("#choiceLocationList .dropdown-menu").append('<li><a href="javascript:void(0);" data-location="">全部文档</a></li>');
$("#choiceLocationList .choice-text").text(json.data[0].name);

View File

@@ -9,6 +9,11 @@
<body>
<div id="app">
<div class="title-info">
<div class="alert alert-primary">
<div class="content">Tips保存的swagger-resources实际会自动获取所有文档到“详细地址管理”里所以这里的地址无实际用处实际起作用的是“详细地址管理”里的哦所以这里面只保留查询列表了不再提供增删改想要添加修改就去“详细地址管理”里操作吧</div>
</div>
</div>
<table class="table table-bordered setting-table">
<thead>
<tr>
@@ -26,8 +31,8 @@
<td>{{item.rewriteDomainUrl}}</td>
<td>{{item.lastSync}}</td>
<td>
<button class="btn btn-danger" type="button" v-on:click="deleteDocUrl($event)">删除</button>
<button class="btn btn-info" type="button" v-on:click="editDocUrl($event)">编辑</button>
<!-- <button class="btn btn-danger" type="button" v-on:click="deleteDocUrl($event)">删除</button>-->
<!-- <button class="btn btn-info" type="button" v-on:click="editDocUrl($event)">编辑</button>-->
<!--<button class="btn btn-danger" type="button" v-on:click="syncDocData($event)">持久化</button>-->
</td>
</tr>
@@ -35,7 +40,7 @@
<td colspan="5" align="center">
<button class="btn" type="button" v-on:click="btnRefreshList"> 刷新 </button>
<button class="btn btn-info" type="button" v-on:click="exportDocument">导出文档</button>
<button class="btn btn-primary" type="button" v-on:click="addNewDocument">增加文档</button>
<!-- <button class="btn btn-primary" type="button" v-on:click="addNewDocument">增加文档</button>-->
</td>
</tr>
</tbody>

View File

@@ -16,6 +16,7 @@
<thead>
<tr>
<td style="width: 50px;">序号</td>
<td>名称</td>
<td>地址</td>
<td>开放文档地址</td>
<td>重写域名地址</td>
@@ -25,6 +26,7 @@
<tbody>
<tr v-for="(item,index) in swaggerLocationList" :key="item.id" :data-id="item.id" :data-index="index" >
<td>{{index+1}}</td>
<td>{{item.customName}}</td>
<td>{{item.location}}</td>
<td>
<!--未开放时即使访问这个地址也看不了-->
@@ -39,7 +41,7 @@
</td>
</tr>
<tr>
<td colspan="5" align="center">
<td colspan="6" align="center">
<button class="btn" type="button" v-on:click="btnRefreshList"> 刷新 </button>
<button class="btn btn-primary" type="button" v-on:click="addNewDocument">增加文档</button>
</td>
@@ -57,6 +59,10 @@
<h4 class="modal-title">输入文档地址</h4>
</div>
<div class="modal-body">
<div class="input-line">
文档名字:
<input v-model="addNewCustomName" type="text" class="form-control" placeholder="可以自定义一个名字,将会在左上角下拉框里展示哦~">
</div>
<div class="input-line">
文档地址:
<input v-model="addNewDocumentInput" type="text" class="form-control" :readonly="addNewDocumentInput.indexOf('proxy-api-docs') > 0" placeholder="例http://127.0.0.1/swagger-resources 或 http://127.0.0.1/v2/api-docs">
@@ -101,7 +107,8 @@
addNewSwaggerJson: '',
rewriteDomainUrl: '',
openVisit: '',
oldLocation: ''
oldLocation: '',
addNewCustomName: '',
},
watch: {
},
@@ -128,6 +135,7 @@
app.addNewDocumentInput = item.location;
app.rewriteDomainUrl = item.rewriteDomainUrl;
app.addNewSwaggerJson = "";
app.addNewCustomName = item.customName;
app.openVisit = (item.openVisit == 1);
if (item.location.indexOf('proxy-api-docs') > 0) {
var docId = item.location.substring(item.location.indexOf("?id=") + 4);
@@ -145,6 +153,7 @@
app.oldLocation = '';
app.addNewDocumentInput = '';
app.addNewSwaggerJson = "";
app.addNewCustomName = "";
$('#addNewDocumentModal').modal({moveable:true});
},
addNewDocumentBtn: function(){
@@ -157,7 +166,8 @@
resourcesUrl: addNewDocumentInput,
swaggerJson: app.addNewSwaggerJson,
rewriteDomainUrl: app.rewriteDomainUrl,
oldUrl: app.oldLocation
oldUrl: app.oldLocation,
customName: app.addNewCustomName,
};
ajaxTemp(urlBase + "swagger-mg-ui/document/addSwaggerResources", "post", "json", param, function(json){
if(validateResult(json)) {