Swagger-UI中排除指定端点失效,如何正确配置GroupedOpenApi?
解决GroupedOpenApi无法排除指定端点的问题
你的问题核心是没搞清楚GroupedOpenApi路径匹配的规则——它用的是Spring的Ant风格路径匹配,不是直接照搬OpenAPI的路径变量语法,所以之前的配置才会让/api/v2/query/filter依然显示。
下面是两种可行的解决办法:
方案一:先全包含再精准排除
先匹配/api/v2/query下的所有子路径,再明确排除不需要的filter端点,代码示例:
@Bean public GroupedOpenApi queryApi() { return GroupedOpenApi.builder() .group("query-api") .pathsToMatch("/api/v2/query/**") .pathsToExclude("/api/v2/query/filter") .build(); }
这种方式逻辑清晰,适合路径结构简单的场景。
方案二:精准匹配目标路径+排除特定值
用Ant风格的变量匹配目标端点,再单独排除filter这个具体路径,代码示例:
@Bean public GroupedOpenApi queryApi() { return GroupedOpenApi.builder() .group("query-api") .pathsToMatch("/api/v2/query/{param1}") // Ant语法里的{param1}匹配任意单级路径 .pathsToExclude("/api/v2/query/filter") .build(); }
这里要注意,{param1}会匹配所有/api/v2/query/xxx格式的路径,包括filter,所以必须通过pathsToExclude明确排除这个特例。
额外注意点
- 检查是否存在其他GroupedOpenApi实例,避免多个分组同时展示导致端点没被过滤
- 确保全局的OpenApi配置没有覆盖分组的过滤规则
内容的提问来源于stack exchange,提问作者ismala
相关产品推荐
相关产品推荐

