从SpringFox2.x升级到SpringFox3.0开放API

Posted

技术标签:

【中文标题】从SpringFox2.x升级到SpringFox3.0开放API【英文标题】:Upgrade from SpringFox2.x to SpringFox3.0 open API 【发布时间】:2020-12-07 00:13:03 【问题描述】:

我们正在尝试将 SPringFox2.0 升级到 3.0 开放 API 规范。但是当我们使用 '' url 生成开放文档时,它显示的版本为 2.0。不知道为什么版本仍然指向旧版本。

我们正在使用 Springboot 应用程序

我按照 spring fox 文档按照以下步骤进行升级

[http://springfox.github.io/springfox/docs/current/][1]

“2.1.3. 从现有的 2.x 版本迁移”

Spring Boot 应用程序

1.删除早期版本的库包含。具体移除 springfox-swagger2 和 springfox-swagger-ui 包含。

2.去掉@EnableSwagger2注解

3.添加springfox-boot-starter

4.Springfox 3.x 删除了对 guava 和其他 3rd 方库的依赖(还不是零依赖!依赖于 spring 插件和开放的注释和模型的 api 库),所以如果你使用了 guava 谓词/函数,则需要转换to java 8 函数接口

我按照上述所有步骤操作,生成了“http://localhost:XXXX/api/v1/api-docs?group=API_Version_1”,但版本显示为 2.0 "swagger":"2.0","info": ........

我还在 SwaggerConfig 中修改:DocumentationType.SWAGGER_2 TO DocumentationType.OAS_30(没有提到文档,我猜他们错过了)

我相信仍然缺少一些东西,Spring Fox 文档仍然过时并且对 3.0 方面的覆盖面很差。

我想知道有没有人有同样的问题?

【问题讨论】:

你让它工作了吗?我们正在做同样的事情,我按照步骤操作,但也没有用。 【参考方案1】:

在您的情况下尝试使用/v3/api-docs/api/v3/api-docs

【讨论】:

【参考方案2】:

那没有用。 根据 Spring Fox 文档: “/v2/api-docs URL 是 SpringFox 用于文档的默认 URL。v2 不是指 API 的文档版本(可以在 Docket 配置中更改),而是使用的 Swagger 规范的版本。 。”

springfox.documentation.swagger.v2.path=/my/docs(你的路径)

【讨论】:

以上是关于从SpringFox2.x升级到SpringFox3.0开放API的主要内容,如果未能解决你的问题,请参考以下文章

Springfox swagger-ui.html无法推断基本URL - 由丢失的cookie引起

如何公开其他模型:从 Springfox 迁移到 Springdoc

从 Springfox Swagger 2 迁移到 Springdoc Open API

如何使用 Springfox 从 Swagger 文档中隐藏端点

将授权标头添加到 Springfox

升级 SpringBoot 2.6.x 版本后,Swagger 没法用了