You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.1升级至2.5后Swagger/OpenAPI使用异常问题求助

解决Spring Boot 2.5升级后Swagger/OpenAPI的两个问题

我来帮你搞定这两个升级后遇到的Swagger问题,咱们逐个分析解决:

问题1:访问Swagger页面提示"No API definition provided"

这个问题通常是API文档生成路径或Swagger UI配置不匹配导致的,结合你的配置来看,可能有以下几个原因和解决办法:

1.1 确认API文档接口可正常访问

首先直接访问你配置的/api-docs路径(比如http://localhost:8081/api-docs),如果返回的是结构化的OpenAPI JSON数据,说明文档生成没问题;如果访问不到,那大概率是缺少基础的OpenAPI配置Bean,需要添加:

@Configuration
public class OpenApiConfig {
    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("你的API名称")
                        .version("1.0")
                        .description("你的API描述"));
    }
}

这个Bean是springdoc-openapi生成API文档的基础,没有它可能无法正确生成接口定义。

1.2 调整Swagger UI的访问路径匹配配置

你的application.yml里配置了springdoc.swagger-ui.path: /swagger.html,但你访问的是/swagger-ui/index.html,路径不匹配自然加载不到API定义。你有两个选择:

  • 直接访问配置的路径:http://localhost:8081/swagger.html
  • 修改配置让Swagger UI使用你习惯的路径:
springdoc:
  swagger-ui:
    path: /swagger-ui/index.html

另外,你设置了disable-swagger-default-url: true,这会禁用默认的/swagger-ui.html路径,所以一定要保证配置的path和你访问的路径一致。


问题2:Swagger发起请求时的CORS错误(HTTP/HTTPS协议不匹配)

你推测的原因是对的——Swagger页面加载时用了HTTPS,但发起接口请求时自动用了HTTP,协议不一致导致跨域(直接浏览器/Postman调用是因为请求和页面同协议,或者Postman不做跨域校验)。解决办法是强制Swagger使用正确的协议发起请求:

2.1 在OpenAPI配置中指定Server地址

修改刚才的OpenApiConfig,添加Server配置,指定HTTPS的基础地址:

@Bean
public OpenAPI customOpenAPI() {
    return new OpenAPI()
            .info(new Info()
                    .title("你的API名称")
                    .version("1.0")
                    .description("你的API描述"))
            .addServersItem(new Server().url("https://localhost:8081")); // 替换成你的实际HTTPS地址
}

这样Swagger会用这个地址作为接口请求的基础URL,避免协议不匹配。

2.2 或者通过application.yml配置server-url

如果不想写Java代码,也可以在配置文件中直接指定:

springdoc:
  swagger-ui:
    server-url: https://localhost:8081

这个配置会让Swagger UI所有的接口请求都基于这个URL发起,确保和页面协议一致。

另外补充一下:你的WebConfig里的CORS配置只指定了允许的方法,但没有明确设置allowedOrigins,不过Spring默认会允许所有来源;但核心问题是协议不匹配,所以上面的Server配置才是解决这个CORS错误的关键。


内容的提问来源于stack exchange,提问作者sonoerin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 19:13:02