Kaynağa Gözat

新增`Any`参数类型

mxd 3 yıl önce
ebeveyn
işleme
565a60a8fc

+ 1 - 1
magic-api-plugins/magic-api-plugin-swagger/src/main/java/org/ssssssss/magicapi/swagger/entity/SwaggerProvider.java

@@ -193,7 +193,7 @@ public class SwaggerProvider {
 				result.put("items", Collections.emptyList());
 			}
 			result.put("type", target.getDataType().getJavascriptType());
-		} else if (DataType.Object == target.getDataType()) {
+		} else if (DataType.Object == target.getDataType() || DataType.Any == target.getDataType()) {
 			String voName = groupName + "«" + info.getPath().replaceFirst("/", "").replaceAll("/", "_") + (StringUtils.equals("response", definitionType) ? "«response«" : "«request«") + parentName + target.getName() + "»»»";
 
 			Map<String, Object> definition = new HashMap<>(4);

+ 5 - 0
magic-api/src/main/java/org/ssssssss/magicapi/core/model/DataType.java

@@ -27,6 +27,11 @@ public enum DataType {
 	 */
 	Array("array"),
 
+	/**
+	 * 任意类型
+	 */
+	Any("object"),
+
 	/**
 	 * Boolean类型
 	 */

+ 3 - 0
magic-api/src/main/java/org/ssssssss/magicapi/core/web/RequestHandler.java

@@ -224,6 +224,9 @@ public class RequestHandler extends MagicController {
 			removeUnknownKey(parameters, validateParameters);
 		}
 		for (BaseDefinition parameter : validateParameters) {
+			if (parameter.getDataType() == DataType.Any) {
+				continue;
+			}
 			// 针对requestBody多层级的情况
 			if (DataType.Object == parameter.getDataType()) {
 				if (doValidateBody(comment, parameter, parameters, jsonCode, Map.class)) {