晴天技术
AI6 min read

用 AI 设计和生成 REST API

用 AI 设计和生成 REST API

API设计REST APISpring BootAI开发

API 设计是后端开发的核心工作。AI 可以帮你快速设计和生成高质量的 API。

AI 设计 API

需求转 API

Prompt:根据以下需求设计 REST API:

需求:一个在线书店系统
功能:
1. 用户注册登录
2. 浏览书籍
3. 购物车管理
4. 下单支付
5. 订单管理

要求:
- RESTful 风格
- 包含请求/响应示例
- 列出错误码

AI 会生成完整的 API 设计文档。

数据库转 API

Prompt:根据以下数据库表生成 REST API:

CREATE TABLE users (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    password VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE posts (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT NOT NULL,
    title VARCHAR(200) NOT NULL,
    content TEXT,
    status VARCHAR(20) DEFAULT 'draft',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

生成 CRUD API,包含分页查询和筛选。

AI 生成 Controller

Spring Boot

Prompt:根据以下 API 设计生成 Spring Boot Controller:

POST /api/users - 创建用户
GET /api/users - 获取用户列表(分页)
GET /api/users/{id} - 获取用户详情
PUT /api/users/{id} - 更新用户
DELETE /api/users/{id} - 删除用户

要求:
- 使用 @Valid 验证
- 统一返回格式 Result<T>
- 包含 Swagger 注解
- 异常处理

AI 会生成完整的 Controller 代码。

生成 Service

Prompt:为 UserController 生成对应的 Service 实现:
- 包含业务逻辑
- 使用 UserRepository
- 异常处理
- 事务管理

生成 DTO

Prompt:为 User 实体生成 DTO:
- CreateUserRequest(创建请求)
- UpdateUserRequest(更新请求)
- UserResponse(响应)
- 包含验证注解

AI 生成 OpenAPI 文档

Prompt:根据以下 Controller 生成 OpenAPI/Swagger 文档:

@RestController
@RequestMapping("/api/products")
public class ProductController {
    @PostMapping
    public Product createProduct(@Valid @RequestBody CreateProductRequest request) {}
    
    @GetMapping
    public Page<Product> listProducts(@RequestParam int page, @RequestParam int size) {}
    
    @GetMapping("/{id}")
    public Product getProduct(@PathVariable Long id) {}
}

生成 YAML 格式的 OpenAPI 3.0 文档。

API 版本管理

Prompt:设计 API 版本管理方案:
- 支持 v1 和 v2 版本
- URL 路径版本控制
- 向后兼容策略
- 给出 Spring Boot 实现示例

API 安全设计

Prompt:为以下 API 设计安全方案:

API 列表:
- POST /api/auth/login - 登录
- POST /api/auth/register - 注册
- GET /api/users - 获取用户列表(需要认证)
- DELETE /api/users/{id} - 删除用户(需要管理员权限)

要求:
- JWT 认证
- 角色权限控制
- 限流配置
- CORS 配置

API 测试生成

生成 Postman 集合

Prompt:为以下 API 生成 Postman 集合(JSON 格式):

[粘贴 API 列表]

包含:
- 正常请求示例
- 异常请求示例
- 环境变量配置

生成 curl 命令

Prompt:为以下 API 生成 curl 测试命令:

POST /api/users
Body: { "name": "test", "email": "test@example.com" }

GET /api/users?page=1&size=10

包含各种场景的测试命令。

API 文档生成

Markdown 文档

Prompt:为以下 API 生成 Markdown 格式的文档:

[粘贴 API 列表]

包含:
- 接口说明
- 请求参数
- 响应示例
- 错误码说明
- 使用示例

中文文档

Prompt:将以下英文 API 文档翻译成中文,保持格式不变:
[粘贴英文文档]

API 网关配置

Prompt:生成 Kong/Nginx API 网关配置:

API 列表:
- /api/users → user-service:8081
- /api/orders → order-service:8082
- /api/products → product-service:8083

要求:
- 负载均衡
- 限流
- 认证
- 日志

GraphQL 生成

Prompt:将以下 REST API 转换为 GraphQL Schema:

GET /api/users → Query.users
GET /api/users/{id} → Query.user(id)
POST /api/users → Mutation.createUser
PUT /api/users/{id} → Mutation.updateUser
DELETE /api/users/{id} → Mutation.deleteUser

生成 Schema 和 Resolver 示例。

API 重构

Prompt:重构以下 API,使其更 RESTful:

当前设计:
- GET /api/getUser?id=1
- POST /api/createUser
- POST /api/updateUser
- POST /api/deleteUser

改为标准 RESTful 风格,给出新的路由设计。

API 性能优化

Prompt:分析以下 API 的性能问题并给出优化建议:

GET /api/orders?userId=1

当前实现:
1. 查询订单列表
2. 循环查询每个订单的商品
3. 循环查询每个商品的详情
4. 返回结果

问题:N+1 查询,响应时间 5 秒

给出优化方案。

最佳实践

1. 命名规范

# 好的命名
GET /api/users/{id}/orders
POST /api/orders

# 差的命名
GET /api/getUserOrders
POST /api/createOrder

2. 统一响应格式

{
  "code": 200,
  "message": "success",
  "data": {}
}

3. 错误处理

{
  "code": 400,
  "message": "参数错误",
  "errors": [
    {"field": "email", "message": "邮箱格式不正确"}
  ]
}

4. 分页设计

{
  "data": [],
  "pagination": {
    "page": 1,
    "size": 10,
    "total": 100,
    "totalPages": 10
  }
}

总结

AI 设计 API 的价值:

  • 快速设计:从需求到 API 设计只需分钟
  • 代码生成:Controller、Service、DTO 一键生成
  • 文档生成:OpenAPI、Markdown 文档自动生成
  • 质量提升:遵循最佳实践

关键:AI 生成 + 人工审查 + 持续迭代