diff --git a/swagger/swagger-generator/generator-core/src/main/java/io/servicecomb/swagger/generator/core/SwaggerGenerator.java b/swagger/swagger-generator/generator-core/src/main/java/io/servicecomb/swagger/generator/core/SwaggerGenerator.java index 617b8e9a739..3cd1f16f4a2 100644 --- a/swagger/swagger-generator/generator-core/src/main/java/io/servicecomb/swagger/generator/core/SwaggerGenerator.java +++ b/swagger/swagger-generator/generator-core/src/main/java/io/servicecomb/swagger/generator/core/SwaggerGenerator.java @@ -210,7 +210,7 @@ protected boolean isSkipMethod(Method method) { } ApiOperation apiOperation = method.getAnnotation(ApiOperation.class); - if (apiOperation != null) { + if (apiOperation != null && apiOperation.hidden()) { return apiOperation.hidden(); } diff --git a/swagger/swagger-generator/generator-core/src/test/java/io/servicecomb/swagger/generator/core/TestApiOperation.java b/swagger/swagger-generator/generator-core/src/test/java/io/servicecomb/swagger/generator/core/TestApiOperation.java index a76660f7849..5fcef07d71c 100644 --- a/swagger/swagger-generator/generator-core/src/test/java/io/servicecomb/swagger/generator/core/TestApiOperation.java +++ b/swagger/swagger-generator/generator-core/src/test/java/io/servicecomb/swagger/generator/core/TestApiOperation.java @@ -16,6 +16,10 @@ package io.servicecomb.swagger.generator.core; +import static org.hamcrest.core.Is.is; +import static org.hamcrest.core.IsNull.nullValue; +import static org.junit.Assert.assertThat; + import java.util.Arrays; import java.util.Map; @@ -69,6 +73,9 @@ interface ApiOperationAnnotation { @ApiOperation(value = "aaa", response = Integer.class, responseContainer = "Set") int testSet(); + + @ApiOperation(value = "aaa", hidden = true) + int testHidden(); } interface UnknownResponseContainer { @@ -88,6 +95,7 @@ public void testApiOperation() { testMap(swagger.getPath("/testMap")); testList(swagger.getPath("/testList")); testSet(swagger.getPath("/testSet")); + assertThat(swagger.getPath("/testHidden"), is(nullValue())); } @Test diff --git a/swagger/swagger-generator/generator-jaxrs/src/test/java/io/servicecomb/swagger/generator/jaxrs/Echo.java b/swagger/swagger-generator/generator-jaxrs/src/test/java/io/servicecomb/swagger/generator/jaxrs/Echo.java index 7d3193c33b6..7e71ec71430 100644 --- a/swagger/swagger-generator/generator-jaxrs/src/test/java/io/servicecomb/swagger/generator/jaxrs/Echo.java +++ b/swagger/swagger-generator/generator-jaxrs/src/test/java/io/servicecomb/swagger/generator/jaxrs/Echo.java @@ -87,4 +87,9 @@ public String query(@QueryParam(value = "query") String query) { public String queryComplex(@QueryParam(value = "querys") List querys) { return String.format("%s", querys); } + + @ApiOperation(value = "") + public void ignoredNonRestful() { + + } } diff --git a/swagger/swagger-generator/generator-jaxrs/src/test/java/io/servicecomb/swagger/generator/jaxrs/TestJaxrs.java b/swagger/swagger-generator/generator-jaxrs/src/test/java/io/servicecomb/swagger/generator/jaxrs/TestJaxrs.java index d6a600baa74..f2193abb042 100644 --- a/swagger/swagger-generator/generator-jaxrs/src/test/java/io/servicecomb/swagger/generator/jaxrs/TestJaxrs.java +++ b/swagger/swagger-generator/generator-jaxrs/src/test/java/io/servicecomb/swagger/generator/jaxrs/TestJaxrs.java @@ -84,6 +84,11 @@ public void testEmptyPath() throws Exception { UnitTestSwaggerUtils.testSwagger("schemas/emptyPath.yaml", context, Echo.class, "emptyPath"); } + @Test + public void testNonRestful() throws Exception { + UnitTestSwaggerUtils.testSwagger("schemas/emptyContract.yaml", context, Echo.class, "ignoredNonRestful"); + } + @Test public void testClassMethodNoPath() throws Exception { UnitTestSwaggerUtils.testException( diff --git a/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/emptyContract.yaml b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/emptyContract.yaml new file mode 100644 index 00000000000..f0723bd7402 --- /dev/null +++ b/swagger/swagger-generator/generator-jaxrs/src/test/resources/schemas/emptyContract.yaml @@ -0,0 +1,11 @@ +--- +swagger: "2.0" +info: + version: "1.0.0" + title: "swagger definition for io.servicecomb.swagger.generator.jaxrs.Echo" + x-java-interface: "gen.cse.ms.ut.EchoIntf" +basePath: "/Echo" +consumes: +- "application/json" +produces: +- "application/json" \ No newline at end of file diff --git a/swagger/swagger-generator/generator-springmvc/src/test/java/io/servicecomb/swagger/generator/springmvc/MethodEmptyPath.java b/swagger/swagger-generator/generator-springmvc/src/test/java/io/servicecomb/swagger/generator/springmvc/MethodEmptyPath.java index 684388c4c26..f6f8f519b4c 100644 --- a/swagger/swagger-generator/generator-springmvc/src/test/java/io/servicecomb/swagger/generator/springmvc/MethodEmptyPath.java +++ b/swagger/swagger-generator/generator-springmvc/src/test/java/io/servicecomb/swagger/generator/springmvc/MethodEmptyPath.java @@ -23,6 +23,8 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestMapping; +import io.swagger.annotations.ApiOperation; + @RequestMapping(path = "MethodEmptyPath") public class MethodEmptyPath { @@ -50,4 +52,11 @@ public void usingDeleteMapping() { public void usingPatchMapping() { } + + // this will be ignored in the generation of service contract + // as ApiOperation is not a restful annotation + @ApiOperation(value = "") + public void ignoredNonRestful() { + + } }