RESTful API 请求和响应格式
JSON 格式
现代 RESTful API 主要使用 JSON(JavaScript Object Notation)格式来传输数据。
JSON 就像是数据的"通用语言",简单易读。
JSON 基础语法
{
"name": "张三",
"age": 25,
"email": "zhangsan@example.com",
"hobbies": ["阅读", "游泳", "编程"],
"address": {
"city": "北京",
"district": "朝阳区"
},
"isActive": true
}
请求格式
GET 请求示例:
// 请求
GET /api/users/123
Accept: application/json
// 响应
{
"id": 123,
"name": "张三",
"email": "zhangsan@example.com",
"createdAt": "2024-01-15T08:30:00Z"
}
POST 请求示例:
// 请求
POST /api/users
Content-Type: application/json
{
"name": "李四",
"email": "lisi@example.com",
"password": "securePassword123"
}
// 响应
{
"id": 124,
"name": "李四",
"email": "lisi@example.com",
"createdAt": "2024-01-15T09:00:00Z",
"message": "用户创建成功"
}响应结构设计
统一的响应格式
{
"success": true,
"data": {
"id": 123,
"name": "张三"
},
"message": "操作成功",
"timestamp": "2024-01-15T08:30:00Z"
}错误响应格式
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "输入数据验证失败",
"details": [
{
"field": "email",
"message": "邮箱格式不正确"
}
]
},
"timestamp": "2024-01-15T08:30:00Z"
}分页响应
{
"success": true,
"data": [
{
"id": 1,
"name": "用户1"
},
{
"id": 2,
"name": "用户2"
}
],
"pagination": {
"currentPage": 1,
"totalPages": 10,
"totalItems": 100,
"itemsPerPage": 10
}
}
请求头常用字段
| 字段名 | 作用 | 示例 |
|---|---|---|
| Content-Type | 请求体数据格式 | application/json |
| Accept | 期望的响应格式 | application/json |
| Authorization | 身份验证信息 | Bearer token123 |
| User-Agent | 客户端信息 | MyApp/1.0 |
