在开发Spring Boot项目时,接口已完成但Swagger文档尚未配置——这种场景在实际开发中非常普遍。手动添加注解不仅耗时,还容易遗漏@ApiParam或@ApiResponse,导致前端联调时反复追问“这个字段是必填吗”。通义灵码可以直接根据您的Controller方法签名和已有注释,自动生成完整、可运行的Swagger配置代码,省去逐行补全的繁琐过程。
确认通义灵码已启用并识别到项目结构
为了顺利生成Swagger文档,首先需要确保通义灵码能正确理解您的项目结构。打开VS Code或IntelliJ(确保已安装通义灵码插件),当前工作区必须是一个完整的Spring Boot项目,并且pom.xml中已经引入了springdoc-openapi-ui依赖(3.0+版本):
org.springdoc
springdoc-openapi-ui
1.7.0
如果没有引入这个依赖,通义灵码可能无法准确推断OpenAPI 3.0的注解体系,会退而使用过时的@Api、@ApiOperation等Swagger 2写法。
在任意Java文件中右键,选择「通义灵码」→「生成文档」,或者直接输入快捷指令【/generate api docs】,即可触发文档生成流程。
让通义灵码生成带分组和全局参数的SwaggerConfig类
新建一个配置类,比如SwaggerConfig.java,放在config包下,将光标定位到空文件中,输入以下自然语言指令:
方法一:用中文指令触发精准生成
① 输入:“请为本Spring Boot项目生成一个支持多分组、带全局请求头Authorization的Swagger配置类,使用springdoc-openapi 1.7.0规范”
② 按Tab或回车确认,通义灵码会输出完整的Java配置类,包含@Configuration、@Bean返回OpenAPI实例,并自动添加securitySchemes和securityRequirements。
③ 关键点:它会在servers中注入本地调试地址http://localhost:8080,这样部署后文档里就不会出现https://example.com,避免前端测试时找不到地址。
方法二:基于已有代码续写
如果您已经写好了一部分配置,可以将光标放在类末尾大括号前,输入:“补充全局Header参数X-Trace-ID和租户ID tenant-id,要求所有GET/POST接口默认携带”——它会插入addGlobalRequestParameters调用,并为每个PathItem注入Parameter对象。
对Controller方法一键补全Swagger注解
打开您的UserController.java,找到一个还未添加文档注解的接口方法,比如:
@GetMapping("/users/{id}")
public User getUserById(@PathVariable Long id) { ... }
将光标停在方法名getUserById上,按下快捷键(VS Code默认Ctrl+Shift+I),或者右键 → 「通义灵码」→ 「解释并补充文档注解」。
它会立刻在方法上方插入:
@Operation(summary = "根据ID查询用户", description = "返回完整用户信息,包含角色与权限列表")
@ApiResponses({
@ApiResponse(responseCode = "200", description = "查询成功", content = @Content(schema = @Schema(implementation = User.class))),
@ApiResponse(responseCode = "404", description = "用户不存在")
})
@Parameter(name = "id", description = "用户唯一标识", required = true, example = "1001")
必须强调的是:@Parameter必须标注在@PathVariable参数前,不能只写在方法上;否则swagger-ui不会渲染路径参数输入框。
这一步操作其实很简单,直接将光标放准位置即可触发,完全不用记住注解的嵌套层级。
生成OpenAPI YAML并校验格式有效性
在项目根目录新建一个临时文件openapi.yaml,将光标置于空白处,输入:“根据当前项目所有Controller接口,生成符合OpenAPI 3.0.3规范的YAML文档,要求包含servers、components.schemas、paths全部区块,响应示例值用真实业务数据填充”。
通义灵码会输出结构清晰的YAML,其中:
• paths./users/{id}.get.responses."200".content."application/json".examples 下面包含带中文说明的示例值;
• components.schemas.User.properties.avatar.format 会自动识别为uri而非string;
• 所有枚举字段都会展开为enum数组,而不是仅仅写一个string。
复制整段YAML,粘贴到Swagger Editor左侧面板,右侧会实时渲染出可交互的文档界面。如果出现红色报错,说明通义灵码输出中存在缩进错误或缺失required字段——此时不要手动修改YAML,应返回IDE,用通义灵码重新生成并勾选「严格校验JSON Schema兼容性」选项。

