From 5b74a202167376520fd15045fa9c3089db41e1a6 Mon Sep 17 00:00:00 2001 From: hyin Date: Fri, 28 Oct 2022 15:25:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:Query=E5=8F=82=E6=95=B0=E4=B8=BA?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E6=97=B6=EF=BC=8C=E5=BA=94=E5=B1=95=E5=BC=80?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=B1=9E=E6=80=A7=E4=BD=9C=E4=B8=BAQuery?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.properties | 2 +- .../java/cn/torna/api/open/SwaggerApi.java | 58 ++++++++----------- 2 files changed, 26 insertions(+), 34 deletions(-) diff --git a/server/boot/src/main/resources/application.properties b/server/boot/src/main/resources/application.properties index d10670b8..84079e83 100644 --- a/server/boot/src/main/resources/application.properties +++ b/server/boot/src/main/resources/application.properties @@ -2,7 +2,7 @@ server.port=7700 # MySQL host -mysql.host=${MYSQL_HOST:localhost:3306} +mysql.host=${MYSQL_HOST:localhost:53306} # Schema name mysql.schema=${MYSQL_SCHEMA:torna} # Make sure the account can run CREATE/ALTER sql. diff --git a/server/server-api/src/main/java/cn/torna/api/open/SwaggerApi.java b/server/server-api/src/main/java/cn/torna/api/open/SwaggerApi.java index 02db61a2..9a6f4fcc 100644 --- a/server/server-api/src/main/java/cn/torna/api/open/SwaggerApi.java +++ b/server/server-api/src/main/java/cn/torna/api/open/SwaggerApi.java @@ -2,13 +2,7 @@ package cn.torna.api.open; import cn.torna.api.bean.ApiUser; import cn.torna.api.bean.RequestContext; -import cn.torna.api.open.param.DebugEnvParam; -import cn.torna.api.open.param.DocParamPushParam; -import cn.torna.api.open.param.DocPushItemParam; -import cn.torna.api.open.param.DocPushParam; -import cn.torna.api.open.param.EnumInfoCreateParam; -import cn.torna.api.open.param.EnumItemCreateParam; -import cn.torna.api.open.param.HeaderParamPushParam; +import cn.torna.api.open.param.*; import cn.torna.common.bean.Booleans; import cn.torna.common.bean.HttpHelper; import cn.torna.common.bean.User; @@ -43,19 +37,12 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @author thc @@ -81,6 +68,7 @@ public class SwaggerApi { /** * 导入swagger文档 + * * @param importSwaggerV2DTO importSwaggerV2DTO */ public Module importSwagger(ImportSwaggerV2DTO importSwaggerV2DTO) { @@ -184,8 +172,9 @@ public class SwaggerApi { /** * OpenAPI转换成Torna推送文档参数 + * * @param pushUser 推送人 - * @param openAPI openAPI对象 + * @param openAPI openAPI对象 * @return 返回Torna需要的参数 */ private static DocPushParam convertDocInfo(String pushUser, OpenAPI openAPI) { @@ -200,6 +189,7 @@ public class SwaggerApi { /** * 构建调试环境 + * * @param openAPI openAPI * @return 返回调试环境,没有返回空List */ @@ -278,12 +268,12 @@ public class SwaggerApi { } return paths.entrySet() .stream() - .flatMap(entry-> buildItems(entry, openAPI).stream()) + .flatMap(entry -> buildItems(entry, openAPI).stream()) .collect(Collectors.toList()); } private static List buildItems(Map.Entry entry, OpenAPI openAPI) { - List items = new ArrayList<>(); + List items = new ArrayList<>(); String path = entry.getKey(); PathItem pathItem = entry.getValue(); Map operationMap = pathItem.readOperationsMap(); @@ -300,8 +290,8 @@ public class SwaggerApi { .deprecated(Optional.ofNullable(operation.getDeprecated()).orElse(false) ? "" : null) .orderIndex(threadLocal.get().getAndIncrement()) .headerParams(buildHeaderParamPushParams(operation)) - .pathParams(buildDocParamPushParams(operation, parameter -> Objects.equals("path", parameter.getIn()))) - .queryParams(buildDocParamPushParams(operation, parameter -> Objects.equals("query", parameter.getIn()))) + .pathParams(buildDocParamPushParams(openAPI, operation, parameter -> Objects.equals("path", parameter.getIn()))) + .queryParams(buildDocParamPushParams(openAPI, operation, parameter -> Objects.equals("query", parameter.getIn()))) .tag(CollectionUtils.isEmpty(operation.getTags()) ? "" : operation.getTags().get(0)) .build(); @@ -372,7 +362,7 @@ public class SwaggerApi { } } else { // 表单结构 - docParamPushParams = buildDocParamPushParams(operation, parameter -> "formData".equals(parameter.getIn())); + docParamPushParams = buildDocParamPushParams(openAPI, operation, parameter -> "formData".equals(parameter.getIn())); } return new RequestParamsWrapper(docParamPushParams, isRequestArray, contentType); } @@ -439,7 +429,7 @@ public class SwaggerApi { } // list对象,List if ("array".equals(type) && value.containsKey("items")) { - Map items = (Map)value.get("items"); + Map items = (Map) value.get("items"); Object itemRef = items.get("$ref"); if (itemRef != null) { children = buildObjectParam(String.valueOf(itemRef), openAPI); @@ -489,14 +479,14 @@ public class SwaggerApi { return enumInfoCreateParam; } - private static List buildDocParamPushParams(Operation operation, Predicate predicate) { + private static List buildDocParamPushParams(OpenAPI openAPI, Operation operation, Predicate predicate) { List parameters = operation.getParameters(); if (CollectionUtils.isEmpty(parameters)) { return null; } return parameters.stream() .filter(predicate) - .map(parameter -> { + .flatMap(parameter -> { DocParamPushParam param = DocParamPushParam.builder() .name(parameter.getName()) .type(getType(parameter)) @@ -507,16 +497,20 @@ public class SwaggerApi { .build(); Schema schema = parameter.getSchema(); if (schema != null) { + String $ref = schema.get$ref(); + String type = schema.getType(); // 如果是数组参数 - if ("array".equals(param.getType())) { + if ("array".equals(type)) { Schema items = schema.getItems(); String itemsType = items.getType(); - param.setType("array["+itemsType+"]"); + param.setType("array[" + itemsType + "]"); List list = items.getEnum(); setEnumDescription(list, param); + } else if ($ref != null) { + return buildObjectParam($ref, openAPI).stream(); } } - return param; + return Stream.of(param); }) .collect(Collectors.toList()); } @@ -568,7 +562,6 @@ public class SwaggerApi { } - private static String getMaxLength(Parameter parameter) { return Optional.ofNullable(parameter) .map(Parameter::getSchema) @@ -584,8 +577,7 @@ public class SwaggerApi { } /** - * - * @param $ref #/components/schemas/Order + * @param $ref #/components/schemas/Order * @param openAPI * @return */ @@ -595,7 +587,7 @@ public class SwaggerApi { String type = schema.getType(); if (type == null) { Map objectProperties = Optional.ofNullable(schema.getJsonSchema()).orElse(Collections.emptyMap()); - type = String.valueOf(objectProperties.getOrDefault("type", TYPE_OBJECT)); + type = String.valueOf(objectProperties.getOrDefault("type", TYPE_OBJECT)); } Map properties = getProperties(schema); return new JsonSchema(type, properties, schema); @@ -608,7 +600,7 @@ public class SwaggerApi { for (Map.Entry entry : properties.entrySet()) { Schema value = entry.getValue(); Map val = new LinkedHashMap<>(8); - putVal(val,"required", value.getRequired()); + putVal(val, "required", value.getRequired()); putVal(val, "format", value.getFormat()); putVal(val, "type", value.getType()); putVal(val, "description", value.getDescription()); -- Gitee From 3d22294f504601224989ae496be696f6a7cb8d2f Mon Sep 17 00:00:00 2001 From: Elifer <173966404@qq.com> Date: Fri, 28 Oct 2022 07:30:03 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20serv?= =?UTF-8?q?er/boot/src/main/resources/application.properties?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/boot/src/main/resources/application.properties | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 server/boot/src/main/resources/application.properties diff --git a/server/boot/src/main/resources/application.properties b/server/boot/src/main/resources/application.properties deleted file mode 100644 index 84079e83..00000000 --- a/server/boot/src/main/resources/application.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Server port -server.port=7700 - -# MySQL host -mysql.host=${MYSQL_HOST:localhost:53306} -# Schema name -mysql.schema=${MYSQL_SCHEMA:torna} -# Make sure the account can run CREATE/ALTER sql. -mysql.username=${MYSQL_USERNAME:root} -mysql.password=${MYSQL_PASSWORD:root} -- Gitee