为啥使用 springfox 和 Swagger2 时 v2/api-docs 是默认 URL?
Posted
技术标签:
【中文标题】为啥使用 springfox 和 Swagger2 时 v2/api-docs 是默认 URL?【英文标题】:Why is v2/api-docs the default URL when using springfox and Swagger2?为什么使用 springfox 和 Swagger2 时 v2/api-docs 是默认 URL? 【发布时间】:2017-01-16 23:32:39 【问题描述】:我刚开始在guide 之后使用 swagger,但我发现了一些非常奇怪的东西,对我来说毫无意义。
据我所知,当您拥有 API 版本号 2 的文档时,应该使用 v2/api-docs。
所以,默认应该只有 api-docs,但出于某种奇怪的原因,我发现默认是 v2/api-docs。
检查我找到的库文档this。
如何在以后无法使用 v2 的情况下覆盖该值? (当我的 API 达到 v2 但我还想展示遗留文档时)。
或者也许我使用 v2 的概念是错误的?有人可以帮我解决这个问题吗?
【问题讨论】:
URL 中的v2
不是指你的API 版本号,它是Swagger 规范的版本号。当前版本的 SpringFox 默认使用 Swagger 2.0,这就是你看到的。
【参考方案1】:
/v2/api-docs
URL 是 SpringFox 用于文档的默认值。 v2
不是指 API 的文档版本(可以在 Docket
配置中更改),而是使用的 Swagger 规范的版本。查看 documentation here 以自定义 Swagger 文档 URL。简而言之,您需要修改环境属性以更改您的文档将出现在的 URL:
springfox.documentation.swagger.v2.path=/my/docs
这会将 SpringFox Swagger 文档的默认 URL 从 /v2/api-docs
更改为您指定的任何内容。要实现这一点,请将上述属性添加到新的或现有的属性文件中,然后将其作为属性源添加到您的 Springfox 配置类中:
@PropertySource("classpath:swagger.properties")
@Configuration
public class SwaggerConfig ...
【讨论】:
谢谢!。那么,这只是 swagger 文档的终点吗?不适用于我的 API 文档?那我该如何设置我的 api 文档呢? Swagger 是描述 API 端点的规范。您在/v2/api-docs
看到的是 Swagger 2.0 标准中的 API 文档(与 Swagger 1.0、RAML、RestDocs 等相反)。您可以在他们的网站上找到有关 Swagger 规范的更多信息:http://swagger.io/
知道我的 API 文档在 v2/api-docs 中的位置吗? (因为那个 URL 已经被占用了)swagger2 会为它生成或给我一个 URL 吗?
Swagger 文档位于springfox.documentation.swagger.v2.path
属性的任何值处,默认情况下为/v2/api-docs
。请参阅上面的更新答案。
有没有办法改变/swagger-ui.html的路径?以上是关于为啥使用 springfox 和 Swagger2 时 v2/api-docs 是默认 URL?的主要内容,如果未能解决你的问题,请参考以下文章
SpringFox swagger2 and SpringFox swagger2 UI 接口文档生成与查看