diff --git a/api-test/backend/src/main/java/io/metersphere/api/dto/definition/request/variable/JsonSchemaItem.java b/api-test/backend/src/main/java/io/metersphere/api/dto/definition/request/variable/JsonSchemaItem.java index dce7e23047..3e3712197c 100644 --- a/api-test/backend/src/main/java/io/metersphere/api/dto/definition/request/variable/JsonSchemaItem.java +++ b/api-test/backend/src/main/java/io/metersphere/api/dto/definition/request/variable/JsonSchemaItem.java @@ -4,6 +4,7 @@ import io.metersphere.commons.constants.PropertyConstant; import lombok.Getter; import lombok.Setter; +import java.math.BigDecimal; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; @@ -24,6 +25,8 @@ public class JsonSchemaItem { private String pattern; private Integer maxLength; private Integer minLength; + private BigDecimal minimum; + private BigDecimal maximum; private String schema; public JsonSchemaItem() { diff --git a/api-test/backend/src/main/java/io/metersphere/api/parse/api/Swagger3Parser.java b/api-test/backend/src/main/java/io/metersphere/api/parse/api/Swagger3Parser.java index d57682755e..6f44210ba2 100644 --- a/api-test/backend/src/main/java/io/metersphere/api/parse/api/Swagger3Parser.java +++ b/api-test/backend/src/main/java/io/metersphere/api/parse/api/Swagger3Parser.java @@ -475,9 +475,6 @@ public class Swagger3Parser extends SwaggerAbstractParser { private JsonSchemaItem parseSchema(Schema schema, Set refSet) { if (schema == null) return null; - if (StringUtils.isBlank(schema.get$ref()) && schema.getProperties() == null && refSet.isEmpty() && schema.getExample() == null) { - return null; - } JsonSchemaItem item = new JsonSchemaItem(); if (schema.getRequired() != null) { item.setRequired(schema.getRequired()); @@ -521,7 +518,8 @@ public class Swagger3Parser extends SwaggerAbstractParser { item.setPattern(schema.getPattern()); item.setMaxLength(schema.getMaxLength()); item.setMinLength(schema.getMinLength()); - + item.setMaximum(schema.getMaximum()); + item.setMinimum(schema.getMinimum()); return item; } diff --git a/framework/sdk-parent/sdk/src/main/java/io/metersphere/commons/utils/JSON.java b/framework/sdk-parent/sdk/src/main/java/io/metersphere/commons/utils/JSON.java index 7ad9f26959..1dc06389a1 100644 --- a/framework/sdk-parent/sdk/src/main/java/io/metersphere/commons/utils/JSON.java +++ b/framework/sdk-parent/sdk/src/main/java/io/metersphere/commons/utils/JSON.java @@ -1,10 +1,13 @@ package io.metersphere.commons.utils; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.type.CollectionType; import com.fasterxml.jackson.databind.type.TypeFactory; @@ -19,6 +22,10 @@ public class JSON { static { objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + // 自动检测所有类的全部属性 + objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); + // 如果一个对象中没有任何的属性,那么在序列化的时候就会报错 + objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); } public static String toJSONString(Object value) { diff --git a/framework/sdk-parent/sdk/src/main/java/io/metersphere/environment/controller/TestEnvironmentController.java b/framework/sdk-parent/sdk/src/main/java/io/metersphere/environment/controller/TestEnvironmentController.java index d6a7e85659..c7860069e0 100644 --- a/framework/sdk-parent/sdk/src/main/java/io/metersphere/environment/controller/TestEnvironmentController.java +++ b/framework/sdk-parent/sdk/src/main/java/io/metersphere/environment/controller/TestEnvironmentController.java @@ -84,7 +84,8 @@ public class TestEnvironmentController { private void checkParams(TestEnvironmentDTO apiTestEnvironment) { try { - JSONObject json = new JSONObject(JSON.parseObject(apiTestEnvironment.getConfig())); + Map map = JSON.parseObject(apiTestEnvironment.getConfig(),Map.class); + JSONObject json = new JSONObject(map); JSONObject commonConfig = json.getJSONObject("commonConfig"); JSONArray databaseConfigs = json.getJSONArray("databaseConfigs"); diff --git a/framework/sdk-parent/sdk/src/main/java/io/metersphere/environment/service/BaseEnvironmentService.java b/framework/sdk-parent/sdk/src/main/java/io/metersphere/environment/service/BaseEnvironmentService.java index 0d0173a989..1847512d3b 100644 --- a/framework/sdk-parent/sdk/src/main/java/io/metersphere/environment/service/BaseEnvironmentService.java +++ b/framework/sdk-parent/sdk/src/main/java/io/metersphere/environment/service/BaseEnvironmentService.java @@ -349,12 +349,16 @@ public class BaseEnvironmentService extends NodeTreeService { List files = new ArrayList<>(); if (StringUtils.isNotEmpty(config)) { Map map = JSON.parseObject(config, Map.class); - JSONObject commonConfig = new JSONObject(map).getJSONObject("commonConfig"); - JSONArray variables = commonConfig.getJSONArray("variables"); - List list = JSON.parseArray(variables.toString(), ScenarioVariable.class); - list.stream().filter(ScenarioVariable::isCSVValid).forEach(keyValue -> { - files.addAll(keyValue.getFiles().stream().filter(BodyFile::isRef).collect(Collectors.toList())); - }); + JSONObject commonConfig = new JSONObject(map).optJSONObject("commonConfig"); + if (commonConfig!=null){ + JSONArray variables = commonConfig.optJSONArray("variables"); + if (variables!=null){ + List list = JSON.parseArray(variables.toString(), ScenarioVariable.class); + list.stream().filter(ScenarioVariable::isCSVValid).forEach(keyValue -> { + files.addAll(keyValue.getFiles().stream().filter(BodyFile::isRef).collect(Collectors.toList())); + }); + } + } } if (!org.springframework.util.CollectionUtils.isEmpty(files)) { List list = files.stream().distinct().collect(Collectors.toList());