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

如何配置Swagger以展示所有路径前缀为/api/*的服务接口文档

问题根因

你使用的Ant路径匹配规则/api/*的匹配范围不符合预期:

  • Ant匹配规则中,单个星号*仅能匹配同一层级路径内的任意字符,不会跨路径分隔符/匹配,因此仅能匹配/api/后无额外/的路径,例如/api/roles可以命中,而/api/roles/{id}因为在roles后多了路径分隔符/,无法被*匹配到,自然不会被Swagger收录。
修复方案

把PathSelectors.ant("/api/*")中的匹配规则修改为/api/**即可,双星星号**在Ant规则中代表匹配任意层级的路径,不管/api/后有多少层路径、是否携带路径变量都可以正常命中。
修复后的配置代码如下:

@Bean
public Docket swaggerConfiguration() {
    return new Docket(DocumentationType.SWAGGER_2).select().paths(PathSelectors.ant("/api/**"))
            .apis(RequestHandlerSelectors.basePackage("com.services")).build().apiInfo(apiDetails());
}
可选验证点
  • 如果修改后还是有部分接口未展示,可以先排查对应接口的类或方法上是否加了@ApiIgnore这类Swagger忽略注解
  • 确认接口的完整请求路径前缀确实为/api/,没有额外的上下文路径配置导致路径匹配偏移

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:39:01