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

Springdoc无法生成@RepositoryRestResource的Swagger文档怎么办?

问题

已创建带有注解的Repository,但未显示对应的Swagger定义。相关代码及依赖如下:

@RepositoryRestResource(path = "InstanceUptime")
public interface InstanceUptimeRepository extends  JpaRepository<InstanceUptime, Long> {
  @Override
  @RestResource(exported = false)
  void delete(InstanceUptime entity);
}
<dependency>
  <groupId>org.springdoc</groupId>    
  <artifactId>springdoc-openapi-data-rest</artifactId>    
  <version>1.6.14</version>
</dependency>

请问还需要进行哪些操作才能使其正常生成文档?


解决方案

  • 补充核心springdoc UI依赖:仅引入springdoc-openapi-data-rest不足以提供完整的Swagger文档生成和UI支持,需要添加对应Web环境的starter依赖。如果是Spring MVC项目,添加:
<dependency>
  <groupId>org.springdoc</groupId>
  <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
  <version>1.6.14</version>
</dependency>

如果是WebFlux项目,替换为springdoc-openapi-starter-webflux-ui。

  • 确认实体类配置正确性:InstanceUptime类必须是public访问权限,且标注了JPA核心注解(如@Entity、@Id),缺少这些注解会导致Spring Data REST无法识别该资源,Swagger也就无法生成对应文档。

  • 配置springdoc扫描范围:在application.properties或application.yml中指定Repository所在的包路径,确保springdoc能扫描到你的Repository接口:

springdoc.packages-to-scan=com.yourpackage.repository
  • 检查Spring Data REST自动配置状态:确保应用启动类没有排除RepositoryRestMvcAutoConfiguration,同时如果配置了spring.data.rest.base-path,要保证该路径和@RepositoryRestResource的path属性没有冲突。

  • 放行Swagger相关路径:如果项目使用了Spring Security或自定义拦截器,需要允许访问以下路径:

    • /v3/api-docs/**
    • /swagger-ui/**
    • /swagger-ui.html

完成以上操作后,重启应用,访问http://localhost:端口号/swagger-ui.html,即可查看InstanceUptime对应的REST接口文档。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:00:53