From 65dd75458070120267802f81f2867a0e855bd428 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9A=AE=E5=85=89=EF=BC=9A=E5=9F=8E=E4=B8=AD=E5=9F=8E?= <806783409@qq.com> Date: Tue, 25 Jun 2019 21:47:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9swagger=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=96=87=E6=A1=A3=E6=97=B6=E5=B8=A6=E4=B8=8A?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MgOpenDocController.java | 44 ++++++++++++++++--- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/zyplayer-doc-swagger/src/main/java/com/zyplayer/doc/swagger/controller/MgOpenDocController.java b/zyplayer-doc-swagger/src/main/java/com/zyplayer/doc/swagger/controller/MgOpenDocController.java index 1583fd03..5e3f9b85 100644 --- a/zyplayer-doc-swagger/src/main/java/com/zyplayer/doc/swagger/controller/MgOpenDocController.java +++ b/zyplayer-doc-swagger/src/main/java/com/zyplayer/doc/swagger/controller/MgOpenDocController.java @@ -3,6 +3,7 @@ package com.zyplayer.doc.swagger.controller; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSON; import com.zyplayer.doc.core.json.DocResponseJson; +import com.zyplayer.doc.swagger.controller.vo.GlobalParamVo; import com.zyplayer.doc.swagger.controller.vo.LocationListVo; import com.zyplayer.doc.swagger.framework.constant.StorageKeys; import com.zyplayer.doc.swagger.framework.service.MgStorageService; @@ -17,10 +18,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.LinkedList; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** @@ -69,10 +67,14 @@ public class MgOpenDocController { DocResponseJson.ok().send(response); return; } + List globalParamList = this.getGlobalParamList(); List swaggerResourceStrList = new LinkedList<>(); for (LocationListVo location : locationList) { try { - String resourceStr = HttpRequest.get(location.getLocation()).timeout(3000).execute().body(); + String resourceStr = HttpRequest.get(location.getLocation()) + .form(this.getGlobalParamObjMap(globalParamList, "form")) + .addHeaders(this.getGlobalParamMap(globalParamList, "header")) + .timeout(3000).execute().body(); String resourcesUrl = location.getLocation(); int indexV2 = location.getLocation().indexOf("/v2"); if (indexV2 >= 0) { @@ -94,4 +96,36 @@ public class MgOpenDocController { // 用默认的json解析要内存溢出,解析不了JSONObject、、就只有这样写了~ DocResponseJson.ok(swaggerResourceStrList).send(response); } + + /** + * 全局参数 + */ + private List getGlobalParamList() { + String globalParamList = storageService.get(StorageKeys.GLOBAL_PARAM_LIST); + // paramIn key value + List resultList = new LinkedList<>(); + if (StringUtils.isBlank(globalParamList)) { + return resultList; + } + resultList = JSON.parseArray(globalParamList, GlobalParamVo.class); + return resultList; + } + + /** + * 获取指定类型的全局参数 + */ + private Map getGlobalParamMap(List globalParamList, String paramIn) { + Map paramMap = globalParamList.stream().filter(val -> Objects.equals(val.getParamIn(), paramIn)) + .collect(Collectors.toMap(GlobalParamVo::getKey, GlobalParamVo::getValue)); + return paramMap; + } + + /** + * 获取指定类型的全局参数 + */ + private Map getGlobalParamObjMap(List globalParamList, String paramIn) { + Map paramMap = globalParamList.stream().filter(val -> Objects.equals(val.getParamIn(), paramIn)) + .collect(Collectors.toMap(GlobalParamVo::getKey, GlobalParamVo::getValue)); + return paramMap; + } }