diff --git a/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java b/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java index 5a12f8bbf1..da740cf8c6 100644 --- a/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java +++ b/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java @@ -237,7 +237,7 @@ public void scanImplicitParam() { Swagger swagger = getSwagger(ResourceWithImplicitParams.class); List params = swagger.getPath("/testString").getPost().getParameters(); assertNotNull(params); - assertEquals(params.size(), 8); + assertEquals(params.size(), 10); assertEquals(params.get(0).getName(), "sort"); assertEquals(params.get(0).getIn(), "query"); @@ -278,6 +278,15 @@ public void scanImplicitParam() { // see https://github.com/swagger-api/swagger-core/issues/2556. should be not null assertNull(queryParam.getType()); + QueryParameter selectByParam = (QueryParameter) params.get(8); + assertEquals(selectByParam.getName(), "select"); + assertEquals(selectByParam.getIn(), "query"); + assertEquals(selectByParam.getCollectionFormat(), "multi"); + + QueryParameter orderByParam = (QueryParameter) params.get(9); + assertEquals(orderByParam.getName(), "orderby"); + assertEquals(orderByParam.getIn(), "query"); + assertEquals(orderByParam.getCollectionFormat(), "csv"); } @Test(description = "scan implicit params with file objct") diff --git a/modules/swagger-jaxrs/src/test/java/io/swagger/resources/ResourceWithImplicitParams.java b/modules/swagger-jaxrs/src/test/java/io/swagger/resources/ResourceWithImplicitParams.java index 7d10f7840e..711815aded 100644 --- a/modules/swagger-jaxrs/src/test/java/io/swagger/resources/ResourceWithImplicitParams.java +++ b/modules/swagger-jaxrs/src/test/java/io/swagger/resources/ResourceWithImplicitParams.java @@ -23,7 +23,9 @@ public class ResourceWithImplicitParams { @ApiImplicitParam(name = "height", paramType = "query", dataType = "int", allowableValues = "range[3,4]"), @ApiImplicitParam(name = "body", paramType = "body", dataType = "string", required = true), @ApiImplicitParam(name = "width", paramType = "unknown"), - @ApiImplicitParam(name = "description", paramType = "query") + @ApiImplicitParam(name = "description", paramType = "query"), + @ApiImplicitParam(name = "select", type = "array", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "orderby", type = "array", paramType = "query", dataTypeClass = String.class, collectionFormat = "csv") }) @ApiOperation("Test operation with implicit parameters") public void testString() { diff --git a/modules/swagger-models/src/main/java/io/swagger/models/parameters/AbstractSerializableParameter.java b/modules/swagger-models/src/main/java/io/swagger/models/parameters/AbstractSerializableParameter.java index 4712e2847d..87604521aa 100644 --- a/modules/swagger-models/src/main/java/io/swagger/models/parameters/AbstractSerializableParameter.java +++ b/modules/swagger-models/src/main/java/io/swagger/models/parameters/AbstractSerializableParameter.java @@ -249,7 +249,13 @@ public String getType() { @Override public void setType(String type) { this.type = type; - setCollectionFormat(ArrayProperty.isType(type) ? getDefaultCollectionFormat() : null); + if(ArrayProperty.isType(type)) { + if(getCollectionFormat() == null){ + setCollectionFormat(getDefaultCollectionFormat()); + } + } else { + setCollectionFormat(null); + } } @Override