欢迎回来,漂泊者
成就筛查
星声总览
0
/
成就进度
0
/
成就列表
记录每一个瞬间
一图流攻略
🗂️ 攻略分类
🔌 API 接口文档
供第三方开发者调用的 RESTful API 接口
📋 基础信息
服务器地址: http://your-domain.com:3003
请求格式: JSON (application/json)
字符编码: UTF-8
认证方式
| Header 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
Authorization |
string | 否 | Bearer Token,格式:Bearer {token} |
X-Session-Id |
string | 否 | 会话ID,用于游客模式 |
🔐 用户认证
POST 注册/登录
/api/auth/unified
自动判断注册或登录,首次使用自动创建账号
请求示例:
{
"username": "testuser",
"password": "password123"
}
响应示例:
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": 1,
"username": "testuser",
"is_admin": 0
},
"isNew": false
}
💡 提示: 用户名至少3位,密码至少6位
🏆 成就查询
GET 获取成就列表
/api/achievements
查询参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| category_id | int | 否 | 分类ID |
| subcategory_id | int | 否 | 子分类ID |
| version | string | 否 | 版本号(如:V3.0) |
| is_completed | int | 否 | 是否完成(0/1) |
| search | string | 否 | 搜索关键词 |
GET 获取版本列表
/api/achievements/versions
📊 分类查询
GET 获取分类列表
/api/categories
GET 获取分类统计
/api/categories/stats
获取各分类的完成情况统计
✅ 进度管理
POST 切换成就状态
/api/achievements/:id/toggle
切换指定成就的完成状态(未完成 ↔ 完成)
GET 导出进度
/api/achievements/export
导出当前用户的成就进度(ZIP 文件)
POST 导入进度
/api/achievements/import-progress
Content-Type: multipart/form-data
⚠️ 注意: 采用替换模式,会清空当前用户所有进度后导入新数据
🗺️ 攻略查询
GET 获取攻略列表
/api/guides
查询参数: category (可选) - 攻略分类
GET 获取攻略分类
/api/guides/categories
⚠️ 错误处理
HTTP 状态码
| 状态码 | 说明 |
|---|---|
| 200 | 请求成功 |
| 400 | 请求参数错误 |
| 401 | 未授权(未登录或 Token 失效) |
| 429 | 请求频率过高 |
| 500 | 服务器内部错误 |
错误响应格式
{
"error": "错误信息描述"
}
🚀 使用示例
JavaScript (Fetch API)
// 登录
const response = await fetch('/api/auth/unified', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
username: 'testuser',
password: 'password123'
})
});
const data = await response.json();
const token = data.token;
// 获取成就列表
const achievements = await fetch('/api/achievements?version=V3.0', {
headers: { 'Authorization': `Bearer ${token}` }
}).then(r => r.json());
// 完成成就
await fetch('/api/achievements/1/toggle', {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` }
});
Python (requests)
import requests
# 登录
response = requests.post('http://your-domain.com:3003/api/auth/unified',
json={'username': 'testuser', 'password': 'password123'})
token = response.json()['token']
# 获取成就
headers = {'Authorization': f'Bearer {token}'}
achievements = requests.get(
'http://your-domain.com:3003/api/achievements',
headers=headers
).json()
📝 频率限制
限制规则: 同一 IP 在 60 秒内最多请求 10 次
超限响应: HTTP 429 Too Many Requests
重置周期: 60 秒滚动窗口
✅ 建议:
- 实现客户端缓存减少请求
- 避免频繁轮询,使用合理的刷新间隔
- 批量操作时注意请求频率
文档版本: v1.0.0
最后更新: 2025-01-24
欢迎使用
输入账号密码,自动注册或登录
0已完成
0星声
0%进度