원클릭으로
swagger-annotation
SpringDoc OpenAPI 3 中文注解生成工作流。为 Spring Boot Controller 和 DTO 生成符合企业级规范的中文 Swagger 注解(@Tag、@Operation、@Parameter、@Schema)。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
SpringDoc OpenAPI 3 中文注解生成工作流。为 Spring Boot Controller 和 DTO 生成符合企业级规范的中文 Swagger 注解(@Tag、@Operation、@Parameter、@Schema)。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
当用户要求基于某个需求、功能、改造、技术方案或项目实践生成博客文章时使用;必须结合用户给出的完整需求、当前项目真实实现逻辑、业务场景和代码/文档上下文做深入分析,输出通俗易懂且专业的 Markdown 博客到 `.specs/blog/《博客名称》.md`。
当修改 AGENTS.md/CLAUDE.md、docs/api、docs/internals、docs/ops,或代码变更影响这些文档记录的 API、MySQL schema、MQ 契约、Redis 缓存、OSS、错误码、模块架构、配置时,检查并同步更新对应文档,保证项目文档自动维护。
MySQL 建表与字段规范(面向 Java 管理端业务:用户、LLM 配置、数据集、知识文件、解析任务)。统一命名、索引、字段类型、时间戳、引擎字符集与注释要求,便于研发与 DBA 评审落地。
brief.md 和 acceptance.feature 已冻结后,生成 .specs/<需求名>/technical_design.md;必须基于真实 Java 代码、组件文档和契约。
为 toLink-Service 的 HTTP 接口构建并执行全面的 curl 黑盒测试。分析待测接口与边界条件,必要时直连数据库或经接口造数,对本地已启动服务发起 curl 请求,断言响应,最终在对话中返回测试结果汇总。
实现完成后,从当前改动创建规范分支、提交并发起 PR。
| name | swagger-annotation |
| description | SpringDoc OpenAPI 3 中文注解生成工作流。为 Spring Boot Controller 和 DTO 生成符合企业级规范的中文 Swagger 注解(@Tag、@Operation、@Parameter、@Schema)。 |
| when_to_use | 当用户要求为 Controller 接口、RequestParam、PathVariable、RequestBody DTO 或 Response DTO 添加 Swagger/OpenAPI 注解、补充 API 文档说明时激活。触发示例:'给这个接口加swagger注解'、'补充API文档'、'添加openapi描述'、'这个接口缺文档' |
| 原则 | 说明 |
|---|---|
| 中文文档 | 所有 name、description、summary、example 必须为中文 |
| 自解释性 | 注解后的 API 文档页面对前后端协作方无需额外说明 |
| 最小侵入 | 只补缺失注解,不修改现有业务逻辑 |
项目使用 OpenAPI 3 注解(io.swagger.v3.oas.annotations.*),与 Knife4j UI 配合使用:
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
@Tag@RestController
@RequestMapping("/api/v1/xxx")
@Tag(name = "XXX管理接口", description = "提供XXX的创建、查询、更新、删除功能")
public class XxxController { ... }
@Operation@GetMapping("/{id}")
@SaCheckLogin
@Operation(
summary = "查询XXX详情",
description = "根据ID查询单条XXX记录,包含完整字段信息"
)
public Result<XxxDTO> getById(@PathVariable Long id) { ... }
| 参数 | 说明 | 是否必填 |
|---|---|---|
summary | 一句话描述接口功能,显示在 API 列表标题处 | 必填 |
description | 业务语义、适用场景、注意事项 | 建议填写 |
@Parameter用于 @RequestParam、@PathVariable、@RequestHeader:
@GetMapping
public Result<PageResult<XxxDTO>> list(
@Parameter(description = "状态筛选,可选值:ACTIVE、INACTIVE", example = "ACTIVE")
@RequestParam(required = false) String status,
@Parameter(description = "页码,从 1 开始", example = "1")
@RequestParam(defaultValue = "1") int page,
@Parameter(description = "每页条数", example = "20")
@RequestParam(defaultValue = "20") int pageSize
) { ... }
@RequestBody 参数不需要 @Parameter,在 DTO 的 @Schema 上标注即可。
@Data
@Schema(description = "XXX信息")
public class XxxDTO {
@Schema(description = "主键ID", example = "10001")
private Long id;
@Schema(description = "名称", example = "我的XXX")
private String name;
@Schema(description = "状态:ACTIVE 正常, INACTIVE 已停用", example = "ACTIVE")
private String status;
@Schema(description = "创建时间")
private LocalDateTime createdAt;
}
| 注解位置 | 说明 |
|---|---|
类上 @Schema(description="...") | 描述该 DTO 的业务用途 |
字段上 @Schema(description="...", example="...") | 描述字段含义,枚举字段必须列出所有可能值 |
description 中必须列举所有可能值及含义:
@Schema(description = "任务状态:PENDING 待处理, PROCESSING 处理中, SUCCESS 成功, FAILED 失败", example = "PENDING")
private String status;
已有完整注解的 Controller 参考 UsageController.java,已有 DTO 注解参考 DatasetDTO.java。
缺少注解的 Controller 示例:OssFileController.java(仅有 @RestController,无 @Tag / @Operation)。
识别目标文件(Controller 或 DTO),列出:
@Tag@Operation@Parameter@Schema按顺序:类级 @Tag → 方法 @Operation → 参数 @Parameter → DTO @Schema
# 启动服务
mvn spring-boot:run -pl link-api
# 访问 Knife4j 文档页(端口 8080)
# http://localhost:8080/doc.html
| 禁止项 | 说明 |
|---|---|
| 英文 description / summary | 本项目约定全中文文档 |
方法无 @Operation(summary) | Knife4j 列表中该接口无可读标题 |
| 枚举字段不列举可能值 | 前端无法理解合法取值范围 |
混用 Swagger 2 注解(io.swagger.annotations.*) | 项目已统一使用 OpenAPI 3 注解(io.swagger.v3.oas.annotations.*) |