From ff2062d94d42784c87bdbc5be418fa4156bf0891 Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Wed, 13 Mar 2024 17:26:56 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95):?= =?UTF-8?q?=20=E5=AF=BC=E5=85=A5=E7=9A=84=E6=8E=A5=E5=8F=A3=E6=9E=84?= =?UTF-8?q?=E9=80=A0=E9=BB=98=E8=AE=A4=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../definition/ApiTestCaseController.java | 9 +++++-- .../api/parser/api/Swagger3Parser.java | 26 ++++++++++++++----- .../definition/ApiTestCaseLogService.java | 17 ------------ .../definition/ApiTestCaseService.java | 5 ---- .../ApiTestCaseControllerTests.java | 1 - 5 files changed, 26 insertions(+), 32 deletions(-) diff --git a/backend/services/api-test/src/main/java/io/metersphere/api/controller/definition/ApiTestCaseController.java b/backend/services/api-test/src/main/java/io/metersphere/api/controller/definition/ApiTestCaseController.java index 85029072dc..941e49f044 100644 --- a/backend/services/api-test/src/main/java/io/metersphere/api/controller/definition/ApiTestCaseController.java +++ b/backend/services/api-test/src/main/java/io/metersphere/api/controller/definition/ApiTestCaseController.java @@ -33,6 +33,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.ArrayList; import java.util.List; @@ -79,10 +80,14 @@ public class ApiTestCaseController { @GetMapping("recover/{id}") @Operation(summary = "接口测试-接口管理-接口用例-恢复") @RequiresPermissions(PermissionConstants.PROJECT_API_DEFINITION_CASE_DELETE) - @Log(type = OperationLogType.RECOVER, expression = "#msClass.recoverLog(#id)", msClass = ApiTestCaseLogService.class) @CheckOwner(resourceId = "#id", resourceType = "api_test_case") public void recover(@PathVariable String id) { - apiTestCaseService.recover(id, SessionUtils.getUserId(), SessionUtils.getCurrentProjectId()); + ApiTestCaseBatchRequest request = new ApiTestCaseBatchRequest(); + List ids = new ArrayList<>(); + ids.add(id); + request.setSelectIds(ids); + request.setProjectId(SessionUtils.getCurrentProjectId()); + apiTestCaseRecoverService.batchRecover(request, SessionUtils.getUserId()); } @GetMapping("follow/{id}") diff --git a/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/Swagger3Parser.java b/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/Swagger3Parser.java index bac8822cdc..9067d5b6f4 100644 --- a/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/Swagger3Parser.java +++ b/backend/services/api-test/src/main/java/io/metersphere/api/parser/api/Swagger3Parser.java @@ -20,6 +20,7 @@ import io.metersphere.sdk.exception.MSException; import io.metersphere.sdk.util.JSON; import io.metersphere.sdk.util.LogUtils; import io.metersphere.sdk.util.Translator; +import io.metersphere.system.uid.IDGenerator; import io.swagger.parser.OpenAPIParser; import io.swagger.v3.oas.models.*; import io.swagger.v3.oas.models.media.*; @@ -147,6 +148,7 @@ public class Swagger3Parser implements ImportParser { request.setAuthConfig(new NoAuth()); apiDefinitionDTO.setRequest(request); + //解析请求内容 parseResponse(operation.getResponses(), apiDefinitionDTO.getResponse()); results.add(apiDefinitionDTO); @@ -158,13 +160,6 @@ public class Swagger3Parser implements ImportParser { } private void parseRequestBody(RequestBody requestBody, Body body) { - body.setBinaryBody(new BinaryBody()); - body.setFormDataBody(new FormDataBody()); - body.setXmlBody(new XmlBody()); - body.setRawBody(new RawBody()); - body.setNoneBody(new NoneBody()); - body.setJsonBody(new JsonBody()); - body.setWwwFormBody(new WWWFormBody()); if (requestBody != null) { Content content = requestBody.getContent(); if (content != null) { @@ -365,6 +360,16 @@ public class Swagger3Parser implements ImportParser { httpConfig.setResponseTimeout(60000L); request.setOtherConfig(httpConfig); request.setAuthConfig(new NoAuth()); + Body body = new Body(); + body.setBinaryBody(new BinaryBody()); + body.setFormDataBody(new FormDataBody()); + body.setXmlBody(new XmlBody()); + body.setRawBody(new RawBody()); + body.setNoneBody(new NoneBody()); + body.setJsonBody(new JsonBody()); + body.setWwwFormBody(new WWWFormBody()); + body.setNoneBody(new NoneBody()); + request.setBody(body); return request; } @@ -532,6 +537,7 @@ public class Swagger3Parser implements ImportParser { JsonSchemaItem jsonSchemaItem = new JsonSchemaItem(); jsonSchemaItem.setType(PropertyConstant.OBJECT); jsonSchemaItem.setRequired(objectSchema.getRequired()); + jsonSchemaItem.setId(IDGenerator.nextStr()); jsonSchemaItem.setDescription(objectSchema.getDescription()); Map properties = objectSchema.getProperties(); Map jsonSchemaProperties = new LinkedHashMap<>(); @@ -617,6 +623,7 @@ public class Swagger3Parser implements ImportParser { private JsonSchemaItem parseString(StringSchema stringSchema) { JsonSchemaItem jsonSchemaString = new JsonSchemaItem(); jsonSchemaString.setType(PropertyConstant.STRING); + jsonSchemaString.setId(IDGenerator.nextStr()); jsonSchemaString.setFormat(StringUtils.isNotBlank(stringSchema.getFormat()) ? stringSchema.getFormat() : StringUtils.EMPTY); jsonSchemaString.setDescription(getDefaultStringValue(stringSchema.getDescription())); jsonSchemaString.setExample(stringSchema.getExample()); @@ -637,6 +644,7 @@ public class Swagger3Parser implements ImportParser { private JsonSchemaItem parseInteger(IntegerSchema integerSchema) { JsonSchemaItem jsonSchemaInteger = new JsonSchemaItem(); jsonSchemaInteger.setType(PropertyConstant.INTEGER); + jsonSchemaInteger.setId(IDGenerator.nextStr()); jsonSchemaInteger.setFormat(StringUtils.isNotBlank(integerSchema.getFormat()) ? integerSchema.getFormat() : StringUtils.EMPTY); jsonSchemaInteger.setDescription(StringUtils.isNotBlank(integerSchema.getDescription()) ? integerSchema.getDescription() : StringUtils.EMPTY); jsonSchemaInteger.setExample(integerSchema.getExample()); @@ -649,6 +657,7 @@ public class Swagger3Parser implements ImportParser { private JsonSchemaItem parseNumber(NumberSchema numberSchema) { JsonSchemaItem jsonSchemaNumber = new JsonSchemaItem(); jsonSchemaNumber.setType(PropertyConstant.NUMBER); + jsonSchemaNumber.setId(IDGenerator.nextStr()); jsonSchemaNumber.setDescription(StringUtils.isNotBlank(numberSchema.getDescription()) ? numberSchema.getDescription() : StringUtils.EMPTY); jsonSchemaNumber.setExample(numberSchema.getExample()); jsonSchemaNumber.setEnumNumber(numberSchema.getEnum()); @@ -658,6 +667,7 @@ public class Swagger3Parser implements ImportParser { private JsonSchemaItem parseBoolean(BooleanSchema booleanSchema) { JsonSchemaItem jsonSchemaBoolean = new JsonSchemaItem(); jsonSchemaBoolean.setType(PropertyConstant.BOOLEAN); + jsonSchemaBoolean.setId(IDGenerator.nextStr()); jsonSchemaBoolean.setDescription(getDefaultStringValue(booleanSchema.getDescription())); jsonSchemaBoolean.setExample(booleanSchema.getExample()); return jsonSchemaBoolean; @@ -665,6 +675,7 @@ public class Swagger3Parser implements ImportParser { private JsonSchemaItem parseNull() { JsonSchemaItem jsonSchemaNull = new JsonSchemaItem(); + jsonSchemaNull.setId(IDGenerator.nextStr()); jsonSchemaNull.setType(PropertyConstant.NULL); return jsonSchemaNull; } @@ -672,6 +683,7 @@ public class Swagger3Parser implements ImportParser { private JsonSchemaItem parseArraySchema(Schema items) { JsonSchemaItem jsonSchemaArray = new JsonSchemaItem(); jsonSchemaArray.setType(PropertyConstant.ARRAY); + jsonSchemaArray.setId(IDGenerator.nextStr()); Schema itemsSchema = null; if (StringUtils.isNotBlank(items.get$ref())) { itemsSchema = getModelByRef(items.get$ref()); diff --git a/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiTestCaseLogService.java b/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiTestCaseLogService.java index 66c70ca6ad..03fc7e94b0 100644 --- a/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiTestCaseLogService.java +++ b/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiTestCaseLogService.java @@ -97,23 +97,6 @@ public class ApiTestCaseLogService { return dto; } - public LogDTO recoverLog(String id) { - ApiTestCase apiTestCase = apiTestCaseMapper.selectByPrimaryKey(id); - Project project = projectMapper.selectByPrimaryKey(apiTestCase.getProjectId()); - LogDTO dto = new LogDTO( - apiTestCase.getProjectId(), - project.getOrganizationId(), - id, - null, - OperationLogType.RECOVER.name(), - OperationLogModule.API_TEST_MANAGEMENT_CASE, - apiTestCase.getName()); - dto.setHistory(false); - dto.setMethod(HttpMethodConstants.GET.name()); - dto.setOriginalValue(JSON.toJSONBytes(apiTestCase)); - return dto; - } - public LogDTO followLog(String id) { ApiTestCase apiTestCase = apiTestCaseMapper.selectByPrimaryKey(id); Project project = projectMapper.selectByPrimaryKey(apiTestCase.getProjectId()); diff --git a/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiTestCaseService.java b/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiTestCaseService.java index 293fe5dbc5..085b3de37f 100644 --- a/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiTestCaseService.java +++ b/backend/services/api-test/src/main/java/io/metersphere/api/service/definition/ApiTestCaseService.java @@ -336,11 +336,6 @@ public class ApiTestCaseService extends MoveNodeService { } } - public void recover(String id, String userId, String projectId) { - ApiTestCase apiCase = checkResourceExist(id); - batchRecover(List.of(apiCase), userId, projectId); - } - public void batchRecover(List apiTestCases, String userId, String projectId) { if (CollectionUtils.isNotEmpty(apiTestCases)) { apiTestCases.forEach(apiTestCase -> { diff --git a/backend/services/api-test/src/test/java/io/metersphere/api/controller/ApiTestCaseControllerTests.java b/backend/services/api-test/src/test/java/io/metersphere/api/controller/ApiTestCaseControllerTests.java index 7403686567..5adf4c7c8c 100644 --- a/backend/services/api-test/src/test/java/io/metersphere/api/controller/ApiTestCaseControllerTests.java +++ b/backend/services/api-test/src/test/java/io/metersphere/api/controller/ApiTestCaseControllerTests.java @@ -535,7 +535,6 @@ public class ApiTestCaseControllerTests extends BaseTest { Assertions.assertFalse(apiCase.getDeleted()); // @@校验日志 checkLog(apiTestCase.getId(), OperationLogType.RECOVER); - this.requestGet(RECOVER + "111").andExpect(ERROR_REQUEST_MATCHER); // @@校验权限 requestGetPermissionTest(PermissionConstants.PROJECT_API_DEFINITION_CASE_DELETE, RECOVER + apiTestCase.getId());