Files
agent-park/docs/api-testing-guide.md
T

162 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# API 测试指南
## GET /api/events
获取所有事件:
```bash
curl http://localhost:3000/api/events
```
筛选特定年份:
```bash
curl "http://localhost:3000/api/events?year=2024"
```
限制返回数量:
```bash
curl "http://localhost:3000/api/events?limit=10"
```
分页:
```bash
curl "http://localhost:3000/api/events?offset=10&limit=10"
```
## POST /api/events
创建单个事件:
```bash
curl -X POST http://localhost:3000/api/events \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '[
{
"title": "事件标题",
"eventDate": "2023-03-14T00:00:00Z",
"description": "事件描述(10-500字)",
"imageUrl": "https://example.com/image.jpg"
}
]'
```
批量创建事件:
```bash
curl -X POST http://localhost:3000/api/events \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '[
{ "title": "事件1", "eventDate": "2023-01-01T00:00:00Z", "description": "描述1", "imageUrl": "https://example.com/1.jpg" },
{ "title": "事件2", "eventDate": "2023-02-01T00:00:00Z", "description": "描述2", "imageUrl": "https://example.com/2.jpg" }
]'
```
包含可选字段:
```bash
curl -X POST http://localhost:3000/api/events \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '[
{
"title": "GPT-4 Release",
"titleEn": "GPT-4 发布",
"eventDate": "2023-03-14T00:00:00Z",
"description": "OpenAI launches multimodal LLM",
"descriptionEn": "OpenAI 发布多模态大语言模型",
"imageUrl": "https://example.com/gpt4.jpg",
"sourceUrl": "https://openai.com/blog/gpt-4"
}
]'
```
## 验证规则
### 输入验证 (AIEventInputSchema)
- `title`: 1-200 字符(必填)
- `titleEn`: 最多 200 字符(可选)
- `eventDate`: ISO 8601 datetime 格式(必填)
- `description`: 10-500 字符(必填)
- `descriptionEn`: 最多 500 字符(可选)
- `imageUrl`: 有效 URL(必填)
- `sourceUrl`: 有效 URL(可选)
### 查询参数验证 (AIEventQuerySchema)
- `year`: 4位数字年份(可选)
- `limit`: 正整数(可选,默认 100
- `offset`: 非负整数(可选,默认 0
## 认证
所有 POST 请求必须在请求头中包含 API Key:
```
X-API-Key: YOUR_API_KEY
```
## 响应示例
### 成功响应 (POST)
```json
{
"created": 2,
"total": 2
}
```
### 成功响应 (GET)
```json
{
"events": [
{
"id": "cmkwn6q0300004jjz4lobtkpf",
"title": "Transformer论文",
"titleEn": null,
"eventDate": "2017-06-12T00:00:00.000Z",
"description": "Google团队发表Transformer架构",
"descriptionEn": null,
"imageUrl": "https://images.unsplash.com/photo-1677442136019-21780ecad995?w=800",
"sourceUrl": null,
"createdAt": "2026-01-27T13:38:39.268Z",
"updatedAt": "2026-01-27T13:38:39.268Z"
}
]
}
```
### 错误响应
```json
{
"error": "Validation failed",
"details": [
{
"code": "too_small",
"path": ["0", "description"],
"message": "String must contain at least 10 character(s)"
}
]
}
```
## 测试记录
### 2025-01-27 测试结果
- ✅ GET /api/events - 返回空列表
- ✅ POST /api/events - 单个事件创建成功
- ✅ GET /api/events - 验证事件已创建(1个事件)
- ✅ POST /api/events - 批量创建成功(2个事件)
- ✅ GET /api/events?year=2018 - 年份筛选成功(返回2个事件)
所有基础功能测试通过!