swagger已实现文档的参数和返回值查看

This commit is contained in:
暮光:城中城
2021-10-28 23:25:12 +08:00
parent 3a695ebd1a
commit 59ecaf4477
14 changed files with 869 additions and 206 deletions

View File

@@ -128,19 +128,4 @@ public class SwaggerDocumentController {
swaggerDocService.updateById(swaggerDocUp);
return DocResponseJson.ok();
}
/**
* 获取文档内容
*
* @return 文档内容
* @author 暮光:城中城
* @since 2021年10月16日
*/
@ResponseBody
@PostMapping(value = "/content")
public ResponseJson<List<SwaggerDoc>> content(HttpServletRequest request, String docUrl) {
String contentStr = swaggerHttpRequestService.requestUrl(request, docUrl);
return DocResponseJson.ok(contentStr);
}
}

View File

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.SwaggerDoc;
import com.zyplayer.doc.data.repository.manage.entity.SwaggerGlobalParam;
import com.zyplayer.doc.data.service.manage.SwaggerGlobalParamService;
@@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -60,17 +63,15 @@ public class SwaggerGlobalParamController {
*/
@ResponseBody
@PostMapping(value = "/update")
public ResponseJson<List<SwaggerDoc>> update(String globalParam) {
List<SwaggerGlobalParam> newParamList = JSON.parseArray(globalParam, SwaggerGlobalParam.class);
QueryWrapper<SwaggerGlobalParam> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("yn", 1);
List<SwaggerGlobalParam> queryParamList = swaggerGlobalParamService.list(queryWrapper);
List<Long> newIdList = newParamList.stream().map(SwaggerGlobalParam::getId).filter(Objects::nonNull).collect(Collectors.toList());
List<Long> deletedList = queryParamList.stream().map(SwaggerGlobalParam::getId).filter(id -> !newIdList.contains(id)).collect(Collectors.toList());
// 删除不存在的
swaggerGlobalParamService.removeByIds(deletedList);
// 保存或更新的
swaggerGlobalParamService.saveOrUpdateBatch(newParamList);
public ResponseJson<List<SwaggerDoc>> update(SwaggerGlobalParam globalParam) {
if (globalParam.getId() == null) {
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
globalParam.setYn(1);
globalParam.setCreateTime(new Date());
globalParam.setCreateUserId(currentUser.getUserId());
globalParam.setCreateUserName(currentUser.getUsername());
}
swaggerGlobalParamService.saveOrUpdate(globalParam);
return DocResponseJson.ok();
}
}

View File

@@ -3,6 +3,7 @@ package com.zyplayer.doc.swaggerplus.service;
import cn.hutool.http.HttpRequest;
import com.zyplayer.doc.data.repository.manage.entity.SwaggerGlobalParam;
import com.zyplayer.doc.data.service.manage.SwaggerGlobalParamService;
import org.apache.commons.collections.MapUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -27,25 +28,26 @@ public class SwaggerHttpRequestService {
.collect(Collectors.toMap(SwaggerGlobalParam::getParamKey, SwaggerGlobalParam::getParamValue));
Map<String, String> globalHeaderParamMap = globalParamList.stream().filter(item -> Objects.equals(item.getParamType(), 2))
.collect(Collectors.toMap(SwaggerGlobalParam::getParamKey, SwaggerGlobalParam::getParamValue));
Map<String, String> globalCookieParamMap = globalParamList.stream().filter(item -> Objects.equals(item.getParamType(), 3))
.collect(Collectors.toMap(SwaggerGlobalParam::getParamKey, SwaggerGlobalParam::getParamValue));
// 执行请求
String resultStr = HttpRequest.get(docUrl)
.form(globalFormParamMap)
.header("Accept", "application/json, text/javascript, */*; q=0.01")
.header("User-Agent", request.getHeader("User-Agent"))
.addHeaders(globalHeaderParamMap)
.cookie(this.getHttpCookie(request))
.cookie(this.getHttpCookie(request, globalCookieParamMap))
.timeout(5000).execute().body();
return resultStr;
}
private List<HttpCookie> getHttpCookie(HttpServletRequest request) {
private List<HttpCookie> getHttpCookie(HttpServletRequest request, Map<String, String> globalCookieParamMap) {
List<HttpCookie> httpCookies = new LinkedList<>();
for (Cookie cookie : request.getCookies()) {
HttpCookie httpCookie = new HttpCookie(cookie.getName(), cookie.getValue());
httpCookie.setDomain(cookie.getDomain());
httpCookie.setPath(cookie.getPath());
httpCookie.setMaxAge(cookie.getMaxAge());
httpCookies.add(httpCookie);
httpCookies.add(new HttpCookie(cookie.getName(), cookie.getValue()));
}
if (MapUtils.isNotEmpty(globalCookieParamMap)) {
globalCookieParamMap.forEach((key, value) -> httpCookies.add(new HttpCookie(key, value)));
}
return httpCookies;
}