Explorar el Código

代码格式化、修复`body`嵌套解析不正确的问题

mxd hace 4 años
padre
commit
d9220ab466

+ 12 - 16
magic-api/src/main/java/org/ssssssss/magicapi/controller/RequestHandler.java

@@ -117,20 +117,20 @@ public class RequestHandler extends MagicController {
 			Object bodyValue = ObjectUtils.clone(context.get(VAR_NAME_REQUEST_BODY));
 
 			// 请求体首层是数组的时候单独处理
-            if (bodyValue instanceof List) {
+			if (bodyValue instanceof List) {
 				if (!VAR_NAME_REQUEST_BODY_VALUE_TYPE_ARRAY.equalsIgnoreCase(body.getDataType().getJavascriptType())) {
-                    Object result = resultProvider.buildResult(requestEntity, RESPONSE_CODE_INVALID, String.format("body参数错误,应为[%s]", body.getDataType().getJavascriptType()));
-                    return requestEntity.isRequestedFromTest() ? new JsonBean<>(BODY_INVALID, result) : result;
+					Object result = resultProvider.buildResult(requestEntity, RESPONSE_CODE_INVALID, String.format("body参数错误,应为[%s]", body.getDataType().getJavascriptType()));
+					return requestEntity.isRequestedFromTest() ? new JsonBean<>(BODY_INVALID, result) : result;
 				}
 
-				for (Map valueMap : (List<Map>)bodyValue) {
+				for (Map valueMap : (List<Map>) bodyValue) {
 					value = doValidate(requestEntity, VAR_NAME_REQUEST_BODY, body.getChildren().get(0).getChildren(), ObjectUtils.clone(valueMap));
 					if (value != null) {
 						return requestEntity.isRequestedFromTest() ? new JsonBean<>(BODY_INVALID, value) : value;
 					}
 				}
 			} else {
-				value = doValidate(requestEntity, VAR_NAME_REQUEST_BODY, body.getChildren(), (Map)bodyValue);
+				value = doValidate(requestEntity, VAR_NAME_REQUEST_BODY, body.getChildren(), (Map) bodyValue);
 				if (value != null) {
 					return requestEntity.isRequestedFromTest() ? new JsonBean<>(BODY_INVALID, value) : value;
 				}
@@ -162,29 +162,25 @@ public class RequestHandler extends MagicController {
 
 			// 针对requestBody多层级的情况
 			if (VAR_NAME_REQUEST_BODY_VALUE_TYPE_OBJECT.equalsIgnoreCase(parameter.getDataType().getJavascriptType())) {
-				Map map = (Map)parameters.get(parameter.getName());
+				Map map = (Map) parameters.get(parameter.getName());
 				Object result = doValidate(requestEntity, VAR_NAME_REQUEST_BODY, parameter.getChildren(), map);
 				if (result != null) {
 					return result;
 				}
-			}
-
-            if (VAR_NAME_REQUEST_BODY_VALUE_TYPE_ARRAY.equalsIgnoreCase(parameter.getDataType().getJavascriptType())) {
-            	if (parameters == null || parameters.get(parameter.getName()) == null) {
+			} else if (VAR_NAME_REQUEST_BODY_VALUE_TYPE_ARRAY.equalsIgnoreCase(parameter.getDataType().getJavascriptType())) {
+				if (parameters == null || parameters.get(parameter.getName()) == null) {
 					return resultProvider.buildResult(requestEntity, RESPONSE_CODE_INVALID, StringUtils.defaultIfBlank(parameter.getError(), String.format("%s[%s]为必填项", comment, parameter.getName())));
 				}
 				if (!(parameters.get(parameter.getName()) instanceof List)) {
 					return resultProvider.buildResult(requestEntity, RESPONSE_CODE_INVALID, StringUtils.defaultIfBlank(parameter.getError(), String.format("%s[%s]数据类型错误", comment, parameter.getName())));
 				}
-                for (Map valueMap : (List<Map>)parameters.get(parameter.getName())) {
+				for (Map valueMap : (List<Map>) parameters.get(parameter.getName())) {
 					Object result = doValidate(requestEntity, VAR_NAME_REQUEST_BODY, parameter.getChildren().get(0).getChildren(), ObjectUtils.clone(valueMap));
 					if (result != null) {
 						return result;
 					}
-                }
-            }
-
-			if (StringUtils.isNotBlank(parameter.getName())) {
+				}
+			} else if (StringUtils.isNotBlank(parameter.getName())) {
 				String requestValue = StringUtils.defaultIfBlank(Objects.toString(parameters.get(parameter.getName()), EMPTY), Objects.toString(parameter.getDefaultValue(), EMPTY));
 				if (StringUtils.isBlank(requestValue)) {
 					if (!parameter.isRequired()) {
@@ -555,7 +551,7 @@ public class RequestHandler extends MagicController {
 				}
 			}
 		} catch (Exception e) {
-			if(requestEntity.isRequestedFromTest()){
+			if (requestEntity.isRequestedFromTest()) {
 				// 修正前端显示,原样输出显示
 				requestEntity.getResponse().setHeader(HEADER_RESPONSE_WITH_MAGIC_API, CONST_STRING_FALSE);
 			}