Skip to content

Commit 1558df6

Browse files
authored
Merge pull request #2800 from swagger-api/fix-collectionFormat
Fixed override issue on property collectionFormat part of annotation @ApiImplicitParam
2 parents 76f26cb + 26831db commit 1558df6

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ public void scanImplicitParam() {
237237
Swagger swagger = getSwagger(ResourceWithImplicitParams.class);
238238
List<Parameter> params = swagger.getPath("/testString").getPost().getParameters();
239239
assertNotNull(params);
240-
assertEquals(params.size(), 8);
240+
assertEquals(params.size(), 10);
241241

242242
assertEquals(params.get(0).getName(), "sort");
243243
assertEquals(params.get(0).getIn(), "query");
@@ -278,6 +278,15 @@ public void scanImplicitParam() {
278278
// see https://github.com/swagger-api/swagger-core/issues/2556. should be not null
279279
assertNull(queryParam.getType());
280280

281+
QueryParameter selectByParam = (QueryParameter) params.get(8);
282+
assertEquals(selectByParam.getName(), "select");
283+
assertEquals(selectByParam.getIn(), "query");
284+
assertEquals(selectByParam.getCollectionFormat(), "multi");
285+
286+
QueryParameter orderByParam = (QueryParameter) params.get(9);
287+
assertEquals(orderByParam.getName(), "orderby");
288+
assertEquals(orderByParam.getIn(), "query");
289+
assertEquals(orderByParam.getCollectionFormat(), "csv");
281290
}
282291

283292
@Test(description = "scan implicit params with file objct")

modules/swagger-jaxrs/src/test/java/io/swagger/resources/ResourceWithImplicitParams.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ public class ResourceWithImplicitParams {
2323
@ApiImplicitParam(name = "height", paramType = "query", dataType = "int", allowableValues = "range[3,4]"),
2424
@ApiImplicitParam(name = "body", paramType = "body", dataType = "string", required = true),
2525
@ApiImplicitParam(name = "width", paramType = "unknown"),
26-
@ApiImplicitParam(name = "description", paramType = "query")
26+
@ApiImplicitParam(name = "description", paramType = "query"),
27+
@ApiImplicitParam(name = "select", type = "array", paramType = "query", dataTypeClass = String.class),
28+
@ApiImplicitParam(name = "orderby", type = "array", paramType = "query", dataTypeClass = String.class, collectionFormat = "csv")
2729
})
2830
@ApiOperation("Test operation with implicit parameters")
2931
public void testString() {

modules/swagger-models/src/main/java/io/swagger/models/parameters/AbstractSerializableParameter.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,13 @@ public String getType() {
249249
@Override
250250
public void setType(String type) {
251251
this.type = type;
252-
setCollectionFormat(ArrayProperty.isType(type) ? getDefaultCollectionFormat() : null);
252+
if(ArrayProperty.isType(type)) {
253+
if(getCollectionFormat() == null){
254+
setCollectionFormat(getDefaultCollectionFormat());
255+
}
256+
} else {
257+
setCollectionFormat(null);
258+
}
253259
}
254260

255261
@Override

0 commit comments

Comments
 (0)