diff --git a/backend/src/main/java/io/metersphere/api/parse/Swagger2Parser.java b/backend/src/main/java/io/metersphere/api/parse/Swagger2Parser.java index aa20d97e7a..4b293deb5b 100644 --- a/backend/src/main/java/io/metersphere/api/parse/Swagger2Parser.java +++ b/backend/src/main/java/io/metersphere/api/parse/Swagger2Parser.java @@ -69,7 +69,7 @@ public class Swagger2Parser extends SwaggerAbstractParser { ApiDefinitionResult apiDefinition = buildApiDefinition(request.getId(), operation, pathName, method.name()); parseParameters(operation, request); apiDefinition.setRequest(JSON.toJSONString(request)); - apiDefinition.setResponse(JSON.toJSONString(parseResponse(operation.getResponses()))); + apiDefinition.setResponse(JSON.toJSONString(parseResponse(operation, operation.getResponses()))); buildModule(parentNode, apiDefinition, operation.getTags(), importRequest.isSaved()); results.add(apiDefinition); } @@ -163,11 +163,13 @@ public class Swagger2Parser extends SwaggerAbstractParser { "", parameter.getRequired()); } - private HttpResponse parseResponse(Map responses) { + private HttpResponse parseResponse(Operation operation, Map responses) { HttpResponse msResponse = new HttpResponse(); msResponse.setBody(new Body()); + msResponse.getBody().setKvs(new ArrayList<>()); msResponse.setHeaders(new ArrayList<>()); msResponse.setType(RequestType.HTTP); + msResponse.getBody().setType(getBodyType(operation)); // todo 状态码要调整? msResponse.setStatusCode(new ArrayList<>()); if (responses != null) { @@ -234,6 +236,15 @@ public class Swagger2Parser extends SwaggerAbstractParser { } } return propertyList.toString(); + } else if (schema instanceof ModelImpl) { + ModelImpl model = (ModelImpl) schema; + if (StringUtils.equals("object", model.getType())) { + model.getProperties(); + if (model != null) { + JSONObject bodyParameters = getBodyParameters(model.getProperties(), new HashSet<>()); + return bodyParameters.toJSONString(); + } + } } return ""; } diff --git a/backend/src/main/java/io/metersphere/api/service/ApiDefinitionService.java b/backend/src/main/java/io/metersphere/api/service/ApiDefinitionService.java index e5f2d6bdb4..8612cb5634 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiDefinitionService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiDefinitionService.java @@ -314,7 +314,7 @@ public class ApiDefinitionService { } else { //如果存在则修改 apiDefinition.setId(sameRequest.get(0).getId()); - apiDefinitionMapper.updateByPrimaryKey(apiDefinition); + apiDefinitionMapper.updateByPrimaryKeyWithBLOBs(apiDefinition); } return apiDefinition; }