Skip to content

现场实操:给定一个包含数据 Schema 的 API 文档,请使用 AI 工具在 15 分钟内生成符合 RESTful 规范的 CRUD 接口代码,并解释关键实现逻辑 ​

  • 标签:大模型

🏛 业务架构师 ​

这类实操题考察的是"AI 辅助工程能力",我按 15 分钟的操作流程演示并讲解:

第一步(1 分钟)·准备上下文:把 API 文档中的数据 Schema(实体字段、类型、约束)喂给 AI 工具(如 Claude/Cursor),声明技术栈——"Spring Boot 3 + MyBatis-Plus,RESTful 规范,统一返回体"。

第二步(2 分钟)·生成核心代码:Prompt 要求生成实体类、Mapper、Service、Controller 四层 CRUD。关键实现逻辑:

text
- 实体类用 @TableName 映射表,字段与 Schema 一一对应
- Controller 按 RESTful 语义设计路由:
  GET /api/orders(列表,支持分页参数)
  GET /api/orders/{id}(详情)
  POST /api/orders(创建,@Valid 校验)
  PUT /api/orders/{id}(更新)
  DELETE /api/orders/{id}(删除)
- 统一返回体 Result<T> 包装,异常走全局处理器

第三步(3 分钟)·迭代修正:编译报错直接贴回给 AI 修复;补充业务约束(字段长度校验、幂等键)。

第四步(5 分钟)·验收:用 Swagger/HTTP 工具跑通增删改查,检查字段校验与错误码。

我的观点:15 分钟生成 CRUD 的价值不在"代码写多快",而在人从"写代码"转向"定义规格+验收质量"——架构师定义 Schema、规范、校验规则这些"不变资产",AI 负责体力活。这也正是企业推行 AI 辅助研发的流程重塑点。

🏗 系统架构师 ​

这类实操题我的做法是工程化闭环,15 分钟的分配:2 分钟读文档、10 分钟迭代生成、3 分钟验证解释:

步骤:

  • 把 API 文档(含数据 Schema)喂给 AI 工具(IDE 内 Agent 如 Copilot/Claude Code),Prompt 给明确契约:实体名、字段、RESTful 规范(资源复数名、状态码语义、分页约定)、技术栈(Spring Boot 3 / JPA 或 Node);
  • 先让 AI 生成 Entity + Repository/DAO + Service + Controller 分层骨架,再生成 CRUD 五个端点,最后补参数校验注解;
  • 关键逻辑我口述约束:统一响应包装、全局异常处理、乐观锁版本字段——这些 AI 默认不会做,要显式要求。

关键实现逻辑解释:

  • RESTful 语义:GET 列表(分页参数)/ GET 详情 / POST 创建(201 + Location)/ PUT 更新 / DELETE(204),资源命名复数、层级表达从属关系;
  • 校验分层:入参 DTO 校验(Bean Validation)在 Controller 层拦截,业务规则(重名、状态机)在 Service 层;
  • 幂等:POST 支持客户端幂等键防重复创建。

架构师点评:AI 生成的价值在样板代码(占 CRUD 的 80%),风险在与存量工程的契合度(统一异常码、鉴权注解、日志规范)——所以 Prompt 里必须注入项目约定。生成后跑编译 + Swagger 验证 + 一条冒烟请求,这个验证闭环不能省。

💻 全栈开发专家 ​

我现场的做法分四步(15 分钟够用,前提是提示写好):

1. 把 Schema 喂给 AI(1 分钟):把 API 文档的实体定义(如 MySQL DDL 或 OpenAPI schema)直接粘贴,明确技术栈:Spring Boot 3 + MyBatis-Plus + SpringDoc。

2. 生成提示词要点:要求按 Entity/Mapper/Service/Controller 分层、RESTful 规范(GET 列表+分页、GET 详情、POST 新增、PUT 全量改、DELETE 删除)、参数用 Bean Validation、统一响应体。

3. 生成后立即验证(5 分钟):

bash
./mvnw spring-boot:run &
curl -s -X POST localhost:8080/api/users \
  -H 'Content-Type: application/json' \
  -d '{"name":"ken","email":"a@b.com"}'
curl -s 'localhost:8080/api/users?page=1&size=10'

4. 解释关键逻辑:生成代码的骨架是:

java
@RestController
@RequestMapping("/api/users")
public class UserController {
    @GetMapping                      // GET /api/users?page=&size= 分页列表
    public Page<UserVO> list(Pageable p) { ... }
    @GetMapping("/{id}")             // 单条详情,404 处理
    @PostMapping                     // 新增,@Valid 校验,201+Location
    @PutMapping("/{id}")             // 全量更新,乐观锁 version
    @DeleteMapping("/{id}")          // 删除,幂等
}

关键实现逻辑:RESTful 语义(动词靠 HTTP method、名词复数资源路径)、分层解耦(Controller 只做协议转换)、校验前移(Bean Validation 注解)、异常统一处理(@RestControllerAdvice 返回一致错误结构)。

经验之谈:AI 生成的常见毛刺是漏唯一约束校验(邮箱重复应 409)、分页没设上限——这两处一定要人工补。