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

如何在保持单端点独立类的同时在Swagger中分组接口?

实现Swagger接口分组的几种方案(保持端点类独立)

当然可以做到,以下是几种实用方案,无需合并端点类就能让Swagger把这些CRUD接口归为同一组展示:

1. 统一设置Swagger标签

不管使用Springfox还是SpringDoc,给每个独立的端点类指定相同的标签名,Swagger会自动将同标签的接口归为一组。

示例(SpringDoc)

在所有文本CRUD的端点类上添加@Tag注解,统一使用同一个组名:

@RestController
@RequestMapping("/api/v1/applications/{applicationCode}/texts")
@Tag(name = "文本管理") // 所有CRUD类共用此标签
public class CreateTextEndpoint {
    @PostMapping
    @Operation(summary = "创建文本")
    public ResponseEntity<Void> createText(...) {
        // 业务逻辑
    }
}

@RestController
@RequestMapping("/api/v1/applications/{applicationCode}/texts")
@Tag(name = "文本管理") // 统一标签
public class FindTextEndpoint {
    @GetMapping
    @Operation(summary = "查询文本列表")
    public ResponseEntity<List<Text>> findTexts(...) {
        // 业务逻辑
    }
}

如果用的是Springfox,替换为@Api(tags = "文本管理")即可。

2. 按路径前缀自动分组

若不想逐个修改端点类,可通过Swagger的分组配置,根据接口路径前缀自动归类。

示例(SpringDoc)

新增配置类,通过GroupedOpenApi指定路径匹配规则:

@Configuration
public class SwaggerConfig {
    @Bean
    public GroupedOpenApi textManagementGroup() {
        return GroupedOpenApi.builder()
                .group("文本管理")
                .pathsToMatch("/api/v1/applications/*/texts/**") // 匹配该路径下所有接口
                .build();
    }
}

所有符合该路径规则的接口会自动被分到"文本管理"组,无需修改现有端点类注解。

3. 自定义分组逻辑(复杂场景)

如果需要更灵活的规则(比如根据类命名前缀、自定义注解判断),可以实现Swagger扩展接口定制分组逻辑。

比如在SpringDoc中,实现OpenApiCustomizer接口统一调整标签:

@Component
public class TextApiGroupCustomizer implements OpenApiCustomizer {
    @Override
    public void customise(OpenApi openApi) {
        openApi.getPaths().values().forEach(pathItem -> {
            pathItem.readOperations().forEach(operation -> {
                // 根据接口路径或原标签判断是否为文本相关接口
                if (operation.getTags().stream().anyMatch(tag -> tag.contains("Text"))) {
                    operation.setTags(List.of("文本管理"));
                }
            });
        });
    }
}

内容的提问来源于stack exchange,提问作者José Puente Fuentes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:45:19