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 生成 + 人工审查 + 持续迭代。