ruoyi若依分离版查看系统接口Swagger之No operations defined in spec!问题

初学,在学习若依分离版的一个扩展项目时时的问题

在系统工具功能下的系统接口可以看swagger接口,按理来说应该是有testController的测试接口的,但是我的界面显示的是

No operations defined in spec!

常见的解决方案都是解决配置包名路径之类产生的问题,最终找到这个博文:

swagger显示示No operations defined in spec的解决 - Msea - 博客园 (cnblogs.com)

把application.yml下的spring配置mvc下面行添加:

pathmatch:

        matching-strategy: xxxxxx(按自动提示的选对填了就行

启动成功:

跟这个问题相关的博文还有:

Springboot2.6+Swagger3无法扫描到接口:No operations defined in spec!_swagger3 no operations defined in spec!-优快云博客

### RuoYi-Cloud 中 Swagger 显示 "No operations defined in spec" 的解决方案 在处理 RuoYi-Cloud 项目中遇到的 Swagger 页面显示 “No operations defined in spec” 错误时,可以从以下几个方面着手解决问题。 #### 配置文件检查 确保 `application.yml` 或者 `application.properties` 文件中有正确的 Swagger 相关配置项。对于 Spring Boot 本较高(如 2.6.x 及以上),默认路径匹配策略有所改变,这可能影响到 API 文档的自动生成[^3]。 ```yaml springfox: swagger-ui: enabled: true documentation: swagger-v2-path: /v2/api-docs ``` #### Docket Bean 定义优化 调整用于创建 Swagger 文档实例 (`Docket`) 的 Java 配置类,使其能够正确识别并加载所有的 Controller 类。如果这些控制器位于不同包下,则需特别注意扫描范围设置: ```java import org.springframework.context.annotation.Bean; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() // 扫描所有带有 RestController 注解的方法所在的类 .apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class)) .paths(PathSelectors.any()) .build(); } ``` 上述代码片段通过 `.withMethodAnnotation()` 方法指定了要扫描的具体 HTTP 请求方法注解,从而更精确地定位目标接口;而不仅仅是依赖于类级别的注解来决定哪些资源应该被纳入文档生成过程之中[^4]。 另外一种常见做法是指定所有实现了特定公共接口(例如 RESTful Web Service 接口)的类作为候选对象参与构建最终输出的结果集: ```java .apis(RequestHandlerSelectors.basePackage("com.example.controller")) // 或者 .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) ``` 这两种方式都可以有效解决由于多模块或多层架构带来的路径解析难题,使得 Swagger UI 能够成功展示预期的操作列表。 #### 检查安全性和权限控制逻辑 有时即使完成了前面提到的各项准备工作之后仍然无法看到任何可用操作定义,这时就需要考虑是否存在某些全局性的拦截器或者其他形式的安全机制阻止了未授权访问尝试获取敏感数据的行为发生。因此建议暂时禁用此类功能后再试一次看看效果如何变化——当然这只是临时措施,在正式环境中应当找到合理的折衷办法既满足安全性需求又不影响开发者体验[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值