Why is v2/api-docs the default URL when using springfox and Swagger2?

jpganz18 picture jpganz18 · Sep 9, 2016 · Viewed 35k times · Source

I'm just starting using swagger following this guide, but I found out something very weird that makes no sense for me.

As far as I remember , the v2/api-docs should be used for when you have docs of the version number 2 of your API.

So, the default should be only api-docs, but for some strange reason I found that the default is v2/api-docs.

Checking the library doc I found this.

How do I override that value without later not being able to use v2? (when my API will reach a v2 but I will also want to show the legacy docs).

Or maybe my concept of using v2 is wrong? Can someone help me with this?

Answer

woemler picture woemler · Sep 12, 2016

The /v2/api-docs URL is the default that SpringFox uses for documentation. The v2 does not refer to your API's documentation version (which can be changed in the Docket configuration), but the version of the Swagger specification being used. Take a look at the documentation here for customizing the Swagger documentation URL. In short, you need to modify an environment property to change the URL your documentation will appear at:

springfox.documentation.swagger.v2.path=/my/docs

This will change the default URL for the SpringFox Swagger documentation from /v2/api-docs to whatever you specify. To implement this, add the above property to a new or existing properties file, and then add it as a property source in your Springfox configuration class:

@PropertySource("classpath:swagger.properties")
@Configuration
public class SwaggerConfig {...}