From 5f8ecf76cf48d837e4345c97bd8f42d27f5922f3 Mon Sep 17 00:00:00 2001 From: chenjianxing Date: Fri, 22 Jan 2021 18:06:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20swagger2.0=E5=AF=BC=E5=85=A5body?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/metersphere/api/parse/Swagger2Parser.java | 15 +++++++++++++-- .../api/service/ApiDefinitionService.java | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) 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; }