33

I am using Springfox libraries to generate documentation for REST service and display it in Swagger UI. I followed the directions in Springfox documentation.

I have one controller, which uses parameters from query string and the method is mapped as following:

@ApiOperation(value = "")
@RequestMapping(method = GET, value = "/customcollection/{id}/data")
public Iterable<CustomeType> getData(@ApiParam(value = "The identifier of the time series.") 
    @PathVariable String id,
    @ApiParam(name = "startDate", value = "start date", defaultValue = "")
    @RequestParam("startDate") String startDate,
    @ApiParam(name = "endDate", value = "end date", defaultValue = "")
    @RequestParam("endDate") String endDate)

The resulting mapper in swagger-ui then displayed as:

GET /customcollection/{id}/data{?startDate,endDate}

Parameters are displayed correctly in the UI: enter image description here

But when I click on Try it Out, the request URL is misformed:

http://localhost:8080/customcollection/1/data{?startDate,endDate}?startDate=1&endDate=2

How can it be fixed?

1 Answer 1

36

This was caused by the line

 enableUrlTemplating(true)

in Docket configuration which I copied from example and forgot to remove.

After removing this line everything is working as expected.

Sign up to request clarification or add additional context in comments.

2 Comments

thanks for the answer! what does enableUrlTemplating do anyway?
Decides whether to use url templating for paths. This is especially useful when you have search api's that might have multiple request mappings for each search use case. This is an incubating feature that may not continue to be supported after the swagger specification is modified to accomodate the usecase as described in issue #711

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.