340 lines
12 KiB
Markdown
340 lines
12 KiB
Markdown
# ephron.ren API 需求文档
|
||
|
||
> 版本: v1.0
|
||
> 更新日期: 2026-05-05
|
||
> Base URL: `https://{service}.ephron.ren/api/v1`
|
||
|
||
---
|
||
|
||
## 一、概述
|
||
|
||
### 1.1 服务架构
|
||
|
||
| 服务 | 域名 | 说明 |
|
||
|------|------|------|
|
||
| Home | www.ephron.ren | 个人主页 |
|
||
| Auth | auth.ephron.ren | 认证授权 |
|
||
| Blog | blog.ephron.ren | 博客系统 |
|
||
| Canvas | canvas.ephron.ren | 代码画布 |
|
||
| Prompt | prompt.ephron.ren | 提示词管理 |
|
||
|
||
### 1.2 权限级别
|
||
|
||
| 权限 | 标识 | 说明 |
|
||
|------|------|------|
|
||
| 🟢 公开 | `public` | 无需认证 |
|
||
| 🔵 用户 | `user` | 需要登录(Cookie 或 Token) |
|
||
| 🟡 服务 | `service` | 需要 Service Token |
|
||
| 🔴 管理 | `admin` | 需要管理员权限 |
|
||
|
||
### 1.3 认证方式
|
||
|
||
| 方式 | Header | 适用场景 |
|
||
|------|--------|----------|
|
||
| Cookie | `ephron_auth` | 浏览器访问 |
|
||
| Bearer Token | `Authorization: Bearer {token}` | 服务间调用 |
|
||
| API Key | `X-API-Key: {key}` | 第三方集成 |
|
||
|
||
---
|
||
|
||
## 二、Home 服务
|
||
|
||
**现状**: ❌ 无API实现
|
||
|
||
### 2.1 需新增API
|
||
|
||
| 方法 | 路径 | 权限 | 说明 | 状态 |
|
||
|------|------|------|------|------|
|
||
| GET | `/api/v1/profile` | 🟢 公开 | 获取个人资料 | ❌ 待实现 |
|
||
| GET | `/api/v1/skills` | 🟢 公开 | 获取技能列表 | ❌ 待实现 |
|
||
| GET | `/api/v1/projects` | 🟢 公开 | 获取项目列表 | ❌ 待实现 |
|
||
| GET | `/api/v1/projects/{id}` | 🟢 公开 | 获取项目详情 | ❌ 待实现 |
|
||
| GET | `/api/v1/timeline` | 🟢 公开 | 获取经历时间线 | ❌ 待实现 |
|
||
|
||
---
|
||
|
||
## 三、Auth 服务
|
||
|
||
**现状**: 部分实现(主要是页面路由)
|
||
|
||
### 3.1 已实现
|
||
|
||
| 方法 | 路径 | 权限 | 说明 |
|
||
|------|------|------|------|
|
||
| GET | `/auth/verify` | 🟢 公开 | 验证认证状态 |
|
||
| GET | `/authz/service-admin` | 🟡 服务 | 验证服务管理员 |
|
||
| POST | `/login` | 🟢 公开 | 用户登录 |
|
||
| POST | `/register` | 🟢 公开 | 用户注册 |
|
||
| POST | `/logout` | 🔵 用户 | 用户登出 |
|
||
| GET | `/check-username` | 🟢 公开 | 检查用户名可用 |
|
||
|
||
### 3.2 需新增API
|
||
|
||
| 方法 | 路径 | 权限 | 说明 | 状态 |
|
||
|------|------|------|------|------|
|
||
| GET | `/api/v1/users/{username}` | 🟢 公开 | 获取用户公开信息 | ❌ 待实现 |
|
||
| GET | `/api/v1/me` | 🔵 用户 | 获取当前用户信息 | ❌ 待实现 |
|
||
| PATCH | `/api/v1/me` | 🔵 用户 | 更新个人资料 | ❌ 待实现 |
|
||
| POST | `/api/v1/me/change-password` | 🔵 用户 | 修改密码 | ❌ 待实现 |
|
||
| POST | `/api/v1/auth/forgot-password` | 🟢 公开 | 发送重置邮件 | ❌ 待实现 |
|
||
| POST | `/api/v1/auth/reset-password` | 🟢 公开 | 重置密码 | ❌ 待实现 |
|
||
| POST | `/api/v1/me/api-keys` | 🔵 用户 | 生成 API Key | ❌ 待实现 |
|
||
| GET | `/api/v1/me/api-keys` | 🔵 用户 | 列出 API Keys | ❌ 待实现 |
|
||
| DELETE | `/api/v1/me/api-keys/{key_id}` | 🔵 用户 | 删除 API Key | ❌ 待实现 |
|
||
|
||
---
|
||
|
||
## 四、Blog 服务
|
||
|
||
**现状**: 部分实现
|
||
|
||
### 4.1 已实现
|
||
|
||
| 方法 | 路径 | 权限 | 说明 |
|
||
|------|------|------|------|
|
||
| GET | `/posts` | 🟢 公开 | 文章列表(页面) |
|
||
| GET | `/posts/{slug}` | 🟢 公开 | 文章详情(页面) |
|
||
| GET | `/api/service/posts` | 🟡 服务 | 文章列表(API) |
|
||
| GET | `/api/service/posts/{slug}` | 🟡 服务 | 文章详情(API) |
|
||
| POST | `/api/service/posts` | 🟡 服务 | 创建文章 |
|
||
| PATCH | `/api/service/posts/{slug}` | 🟡 服务 | 更新文章 |
|
||
| DELETE | `/api/service/posts/{slug}` | 🟡 服务 | 删除文章 |
|
||
| GET | `/posts/{post_slug}/comments` | 🟢 公开 | 获取评论 |
|
||
| POST | `/posts/{post_slug}/comments` | 🔵 用户 | 添加评论 |
|
||
| GET | `/feed` | 🟢 公开 | RSS 订阅 |
|
||
| GET | `/sitemap.xml` | 🟢 公开 | 站点地图 |
|
||
|
||
### 4.2 需新增API
|
||
|
||
| 方法 | 路径 | 权限 | 说明 | 状态 |
|
||
|------|------|------|------|------|
|
||
| GET | `/api/v1/posts` | 🟢 公开 | 文章列表API | ❌ 待实现 |
|
||
| GET | `/api/v1/posts/{slug}` | 🟢 公开 | 文章详情API | ❌ 待实现 |
|
||
| GET | `/api/v1/posts/search` | 🟢 公开 | 全文搜索 | ❌ 待实现 |
|
||
| POST | `/api/v1/posts/{slug}/view` | 🟢 公开 | 记录阅读 | ❌ 待实现 |
|
||
| POST | `/api/v1/posts/{slug}/like` | 🔵 用户 | 点赞文章 | ❌ 待实现 |
|
||
| DELETE | `/api/v1/posts/{slug}/like` | 🔵 用户 | 取消点赞 | ❌ 待实现 |
|
||
| POST | `/api/v1/posts/{slug}/favorite` | 🔵 用户 | 收藏文章 | ❌ 待实现 |
|
||
| DELETE | `/api/v1/posts/{slug}/favorite` | 🔵 用户 | 取消收藏 | ❌ 待实现 |
|
||
| GET | `/api/v1/posts/{slug}/stats` | 🟢 公开 | 获取统计 | ❌ 待实现 |
|
||
| GET | `/api/v1/user/favorites` | 🔵 用户 | 收藏列表 | ❌ 待实现 |
|
||
| GET | `/api/v1/posts/{slug}/comments` | 🟢 公开 | 评论列表API | ❌ 待实现 |
|
||
| POST | `/api/v1/posts/{slug}/comments` | 🔵 用户 | 添加评论API | ❌ 待实现 |
|
||
| POST | `/api/v1/upload/image` | 🔵 用户 | 上传图片 | ❌ 待实现 |
|
||
| GET | `/api/v1/posts/{slug}/versions` | 🔵 用户 | 版本历史 | ❌ 待实现 |
|
||
| POST | `/api/v1/posts/batch` | 🟡 服务 | 批量操作 | ❌ 待实现 |
|
||
| GET | `/api/v1/posts/export` | 🟡 服务 | 导出文章 | ❌ 待实现 |
|
||
|
||
---
|
||
|
||
## 五、Canvas 服务
|
||
|
||
**现状**: ❌ 无API实现
|
||
|
||
### 5.1 需新增API
|
||
|
||
| 方法 | 路径 | 权限 | 说明 | 状态 |
|
||
|------|------|------|------|------|
|
||
| GET | `/api/v1/canvas` | 🟢 公开 | 画布列表 | ❌ 待实现 |
|
||
| GET | `/api/v1/canvas/{slug}` | 🟢 公开 | 画布详情 | ❌ 待实现 |
|
||
| GET | `/api/v1/canvas/{slug}/raw` | 🟢 公开 | 原始内容 | ❌ 待实现 |
|
||
| POST | `/api/v1/canvas/{slug}/view` | 🟢 公开 | 记录浏览 | ❌ 待实现 |
|
||
| POST | `/api/v1/canvas` | 🟡 服务 | 创建画布 | ❌ 待实现 |
|
||
| PATCH | `/api/v1/canvas/{slug}` | 🟡 服务 | 更新画布 | ❌ 待实现 |
|
||
| DELETE | `/api/v1/canvas/{slug}` | 🟡 服务 | 删除画布 | ❌ 待实现 |
|
||
| POST | `/api/v1/canvas/{slug}/like` | 🔵 用户 | 点赞 | ❌ 待实现 |
|
||
| POST | `/api/v1/canvas/{slug}/favorite` | 🔵 用户 | 收藏 | ❌ 待实现 |
|
||
| GET | `/api/v1/templates` | 🟢 公开 | 模板列表 | ❌ 待实现 |
|
||
| POST | `/api/v1/canvas/{slug}/share` | 🔵 用户 | 生成分享链接 | ❌ 待实现 |
|
||
|
||
---
|
||
|
||
## 六、Prompt 服务
|
||
|
||
**现状**: ✅ 已实现7个API
|
||
|
||
### 6.1 已实现
|
||
|
||
| 方法 | 路径 | 权限 | 说明 |
|
||
|------|------|------|------|
|
||
| GET | `/api/prompts` | 🟢 公开 | 提示词列表 |
|
||
| GET | `/api/prompts/{key}` | 🟢 公开 | 提示词详情 |
|
||
| GET | `/api/service/prompts` | 🟡 服务 | 提示词列表 |
|
||
| GET | `/api/service/prompts/{key}` | 🟡 服务 | 提示词详情 |
|
||
| POST | `/api/service/prompts` | 🟡 服务 | 创建草稿 |
|
||
| PATCH | `/api/service/prompts/{key}` | 🟡 服务 | 更新草稿 |
|
||
| DELETE | `/api/service/prompts/{key}` | 🟡 服务 | 删除草稿 |
|
||
|
||
### 6.2 需新增API
|
||
|
||
| 方法 | 路径 | 权限 | 说明 | 状态 |
|
||
|------|------|------|------|------|
|
||
| GET | `/api/v1/prompts/search` | 🟢 公开 | 高级搜索 | ❌ 待实现 |
|
||
| GET | `/api/v1/prompts/categories` | 🟢 公开 | 分类列表 | ❌ 待实现 |
|
||
| GET | `/api/v1/prompts/tags` | 🟢 公开 | 标签列表 | ❌ 待实现 |
|
||
| GET | `/api/v1/prompts/popular` | 🟢 公开 | 热门提示词 | ❌ 待实现 |
|
||
| POST | `/api/v1/prompts/{key}/use` | 🟢 公开 | 记录使用 | ❌ 待实现 |
|
||
| POST | `/api/v1/prompts/{key}/like` | 🔵 用户 | 点赞 | ❌ 待实现 |
|
||
| DELETE | `/api/v1/prompts/{key}/like` | 🔵 用户 | 取消点赞 | ❌ 待实现 |
|
||
| POST | `/api/v1/prompts/{key}/favorite` | 🔵 用户 | 收藏 | ❌ 待实现 |
|
||
| DELETE | `/api/v1/prompts/{key}/favorite` | 🔵 用户 | 取消收藏 | ❌ 待实现 |
|
||
| GET | `/api/v1/user/favorites` | 🔵 用户 | 收藏列表 | ❌ 待实现 |
|
||
| GET | `/api/v1/prompts/{key}/versions` | 🟡 服务 | 版本历史 | ❌ 待实现 |
|
||
| GET | `/api/v1/prompts/{key}/versions/{v}` | 🟡 服务 | 特定版本 | ❌ 待实现 |
|
||
| POST | `/api/v1/prompts/{key}/rollback/{v}` | 🟡 服务 | 回滚版本 | ❌ 待实现 |
|
||
| POST | `/api/v1/prompts/batch` | 🟡 服务 | 批量创建 | ❌ 待实现 |
|
||
| POST | `/api/v1/prompts/batch-delete` | 🟡 服务 | 批量删除 | ❌ 待实现 |
|
||
| GET | `/api/v1/prompts/export` | 🟡 服务 | 导出 | ❌ 待实现 |
|
||
| POST | `/api/v1/prompts/import` | 🟡 服务 | 导入 | ❌ 待实现 |
|
||
| GET | `/api/v1/marketplace` | 🟢 公开 | 模板市场 | ❌ 待实现 |
|
||
| POST | `/api/v1/marketplace/{key}/publish` | 🔵 用户 | 发布到市场 | ❌ 待实现 |
|
||
| POST | `/api/v1/marketplace/{key}/install` | 🔵 用户 | 安装模板 | ❌ 待实现 |
|
||
|
||
---
|
||
|
||
## 七、通用接口
|
||
|
||
**现状**: ❌ 无实现
|
||
|
||
### 7.1 需新增API
|
||
|
||
| 方法 | 路径 | 权限 | 说明 | 状态 |
|
||
|------|------|------|------|------|
|
||
| POST | `/api/v1/upload` | 🔵 用户 | 上传文件 | ❌ 待实现 |
|
||
| GET | `/api/v1/notifications` | 🔵 用户 | 通知列表 | ❌ 待实现 |
|
||
| POST | `/api/v1/notifications/{id}/read` | 🔵 用户 | 标记已读 | ❌ 待实现 |
|
||
| GET | `/api/v1/search` | 🟢 公开 | 全局搜索 | ❌ 待实现 |
|
||
| POST | `/api/v1/webhooks` | 🔵 用户 | 创建 Webhook | ❌ 待实现 |
|
||
| GET | `/api/v1/webhooks` | 🔵 用户 | 列出 Webhooks | ❌ 待实现 |
|
||
| DELETE | `/api/v1/webhooks/{id}` | 🔵 用户 | 删除 Webhook | ❌ 待实现 |
|
||
| GET | `/api/v1/admin/stats` | 🔴 管理 | 全站统计 | ❌ 待实现 |
|
||
|
||
---
|
||
|
||
## 八、实现统计
|
||
|
||
| 服务 | 已实现 | 待实现 | 总计 |
|
||
|------|--------|--------|------|
|
||
| Home | 0 | 5 | 5 |
|
||
| Auth | 6 | 9 | 15 |
|
||
| Blog | 11 | 16 | 27 |
|
||
| Canvas | 0 | 11 | 11 |
|
||
| Prompt | 7 | 20 | 27 |
|
||
| 通用 | 0 | 8 | 8 |
|
||
| **总计** | **24** | **69** | **93** |
|
||
|
||
**完成度**: 24/93 = **26%**
|
||
|
||
---
|
||
|
||
## 九、实现优先级
|
||
|
||
### P0 - 核心功能
|
||
|
||
| 服务 | API | 说明 |
|
||
|------|-----|------|
|
||
| Home | `/api/v1/profile` | 首页展示 |
|
||
| Auth | `/api/v1/me` | 用户系统基础 |
|
||
| Blog | `/api/v1/posts` | 文章列表API |
|
||
| Blog | `/api/v1/posts/search` | 文章搜索 |
|
||
| Canvas | `/api/v1/canvas` | 画布列表 |
|
||
| Prompt | `/api/v1/prompts/search` | 高级搜索 |
|
||
|
||
### P1 - 重要功能
|
||
|
||
| 服务 | API | 说明 |
|
||
|------|-----|------|
|
||
| Auth | `/api/v1/me/api-keys` | 第三方集成 |
|
||
| Blog | `/api/v1/posts/{slug}/like` | 用户互动 |
|
||
| Blog | `/api/v1/upload/image` | 图片上传 |
|
||
| Canvas | 服务API | 自动化支持 |
|
||
| Prompt | 批量操作 | 管理效率 |
|
||
|
||
### P2 - 增强功能
|
||
|
||
| 服务 | API | 说明 |
|
||
|------|-----|------|
|
||
| Auth | 密码重置 | 用户体验 |
|
||
| Blog | 版本管理 | 内容管理 |
|
||
| Canvas | 模板API | 用户便利 |
|
||
| Prompt | 模板市场 | 社区生态 |
|
||
|
||
### P3 - 扩展功能
|
||
|
||
| 服务 | API | 说明 |
|
||
|------|-----|------|
|
||
| 通用 | 通知服务 | 用户提醒 |
|
||
| 通用 | Webhook | 自动化 |
|
||
| 通用 | 全局搜索 | 用户体验 |
|
||
|
||
---
|
||
|
||
## 十、错误处理
|
||
|
||
```json
|
||
{
|
||
"detail": "错误信息",
|
||
"code": "ERROR_CODE"
|
||
}
|
||
```
|
||
|
||
| HTTP | 说明 |
|
||
|------|------|
|
||
| 400 | 请求参数错误 |
|
||
| 401 | 未认证 |
|
||
| 403 | 无权限 |
|
||
| 404 | 资源不存在 |
|
||
| 429 | 请求过于频繁 |
|
||
| 500 | 服务器错误 |
|
||
|
||
---
|
||
|
||
## 十一、速率限制
|
||
|
||
| API 类型 | 限制 |
|
||
|----------|------|
|
||
| 公开 API (GET) | 100次/分钟 |
|
||
| 公开 API (POST) | 10次/分钟 |
|
||
| 用户 API | 60次/分钟 |
|
||
| 服务 API | 30次/分钟 |
|
||
| 文件上传 | 5次/分钟 |
|
||
|
||
---
|
||
|
||
## 十二、数据库扩展
|
||
|
||
```sql
|
||
-- 用户收藏表
|
||
CREATE TABLE user_favorites (
|
||
id INTEGER PRIMARY KEY,
|
||
user_id TEXT NOT NULL,
|
||
resource_type TEXT NOT NULL,
|
||
resource_id TEXT NOT NULL,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
UNIQUE(user_id, resource_type, resource_id)
|
||
);
|
||
|
||
-- 使用统计表
|
||
CREATE TABLE usage_stats (
|
||
id INTEGER PRIMARY KEY,
|
||
resource_type TEXT NOT NULL,
|
||
resource_id TEXT NOT NULL,
|
||
user_id TEXT,
|
||
action TEXT NOT NULL,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
|
||
-- API Keys 表
|
||
CREATE TABLE api_keys (
|
||
id INTEGER PRIMARY KEY,
|
||
key_id TEXT UNIQUE NOT NULL,
|
||
user_id TEXT NOT NULL,
|
||
key_hash TEXT NOT NULL,
|
||
name TEXT,
|
||
permissions TEXT,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
last_used_at TIMESTAMP,
|
||
is_active BOOLEAN DEFAULT TRUE
|
||
);
|
||
```
|