High priority: - Fix concurrent race condition for view_count/like_count (atomic update) - Add route request ID tracking to prevent race conditions - Filter get_joke by status=approved (no pending content leak) - Add error feedback for like button Performance: - Optimize random joke query (avoid full table sort) - Limit page_size max to 100 (DoS prevention) Medium: - Add localStorage quota error handling - Handle empty AI response gracefully - Fix generate content title extraction Low: - Add rejected_jokes to stats API - Update dashboard to show rejected count
2.7 KiB
2.7 KiB
API 操作文档 - 笑话管理系统
基础信息
- API 地址:
http://<服务器IP>:8001 - 默认管理员:
admin/admin123 - 认证方式: JWT Bearer Token
一、登录获取 Token
curl -X POST http://<服务器IP>:8001/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "admin123"}'
返回示例:
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "bearer"
}
二、提交笑话
curl -X POST http://<服务器IP>:8001/api/admin/jokes \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <TOKEN>" \
-d '{
"title": "笑话标题",
"content": "笑话内容正文",
"type_id": 1,
"crowd_id": 2
}'
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
title |
string | 是 | 笑话标题 |
content |
string | 是 | 笑话正文 |
type_id |
int | 否 | 类型 ID(查分类列表获取) |
crowd_id |
int | 否 | 人群 ID(查分类列表获取) |
提交后 status 默认为 pending(待审核)。
三、查询分类 ID
# 查看所有类型
curl http://<服务器IP>:8001/api/categories/types
# 查看所有人群
curl http://<服务器IP>:8001/api/categories/crowds
四、完整脚本示例(批量提交)
#!/bin/bash
SERVER="http://192.168.1.10:8001"
# 登录获取 Token
TOKEN=$(curl -s -X POST "$SERVER/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123"}' \
| python -c "import sys,json; print(json.load(sys.stdin)['access_token'])")
echo "Token: $TOKEN"
# 批量提交笑话
jokes=(
'{"title":"笑话1","content":"内容1","type_id":1,"crowd_id":2}'
'{"title":"笑话2","content":"内容2","type_id":1,"crowd_id":null}'
)
for joke in "${jokes[@]}"; do
curl -X POST "$SERVER/api/admin/jokes" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d "$joke"
echo ""
done
五、其他管理接口
查询笑话列表
curl -H "Authorization: Bearer <TOKEN>" \
"http://<服务器IP>:8001/api/admin/jokes?page=1&page_size=20&status=pending"
审核通过
curl -X PUT http://<服务器IP>:8001/api/admin/jokes/batch-approve \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <TOKEN>" \
-d '[1, 2, 3]'
删除笑话
curl -X DELETE http://<服务器IP>:8001/api/admin/jokes/1 \
-H "Authorization: Bearer <TOKEN>"
六、注意事项
- 将
<服务器IP>替换为实际的服务器 IP 地址 - 确保服务器防火墙已放行 8001 端口
- Token 有过期时间,过期后需重新登录获取