开放 API 中心(功能清单)
OpenAPI Hub(开放 API 中心)
小贴士
开放 API 中心
目标:
提供 API + Token 认证,让开发者或组织能够自由开发个性化应用,而不依赖平台的网页应用。
功能清单
1. 令牌(Token)管理
- 生成 Token:允许开发者生成 API 访问令牌,支持权限范围(如:只读、写入等)。
- Token 管理:支持查看、删除、撤销 Token,支持设置过期时间(短期/长期)。
- API 管理 Token:开发者可以通过 API 管理自己的 Token。
2. 开发者 API 访问权限
- 用户信息:获取开发者基本信息及其加入的组织。
- 权限控制:所有 API 需使用 Token 认证,并基于 Token 权限控制访问。
3. 安全机制
- 权限范围:支持 IP 白名单、OAuth 2.0 / JWT 认证、Token 访问日志。
- 失效机制:定期刷新或设置过期失效。
- API 限流:防止滥用,设定每分钟请求限制。
前端页面汇总
1. 登录页面 ✅
- 功能:用户输入邮箱/用户名、密码,支持 OAuth 登录(如 GitHub、Google、微信等)。
2. 控制台首页
- 功能:展示 API 请求统计、令牌列表,允许创建、撤销令牌。
3. 创建令牌页面
- 功能:用户可以生成新的 API 令牌,设置权限和过期时间。
4. 令牌管理页面
- 功能:展示所有令牌,允许撤销、编辑权限、管理过期时间。
5. 系统设置页面
- 功能:修改账户信息,设置 API 请求频率、IP 白名单、二次验证等安全措施。
6. 教程页面
- 功能:帮助开发者学习如何使用 API 和令牌,提供代码示例、常见问题解答。
要实现的功能是 提供 API + Token 认证,让开发者或组织能自由开发个性化应用,而不依赖平台的网页应用。
这种模式类似于 GitHub/GitLab API + Personal Access Token (PAT) 机制,允许开发者调用平台的 API,集成到自己的应用中。
✅ 需要实现的核心功能
1. 令牌(Token)管理
🔹 目的:提供 API 访问权限,让开发者可以使用 Token 调用平台的 API,而不必登录网页。
🔹 功能:
- [ ] 开发者可以生成 API 访问令牌(Personal Access Token,PAT)
- [ ] 支持不同权限范围(Scopes),例如:
repo_read
(只读访问仓库)repo_write
(修改仓库)user_info
(访问用户数据)
- [ ] 支持 Token 过期时间(长期 / 短期)
- [ ] 支持 Token 撤销(手动删除)
- [ ] 提供 API 让开发者管理自己的 Token(创建、删除、获取 Token 列表)
✅ API 设计示例:
POST /api/token
➝ 创建新 TokenGET /api/token
➝ 获取 Token 列表DELETE /api/token/{id}
➝ 删除 Token
2. 开发者 API 访问权限
🔹 目的:开发者可以通过平台的 API 获取数据、管理资源,而不需要平台的网页应用。
🔹 API 设计:
- 用户信息:
GET /api/user
➝ 获取当前开发者信息GET /api/orgs
➝ 获取开发者加入的组织
- 仓库管理:
GET /api/repos
➝ 获取开发者的仓库POST /api/repos
➝ 创建新仓库DELETE /api/repos/{id}
➝ 删除仓库
- 代码提交管理:
GET /api/repos/{id}/commits
➝ 获取提交记录
- Pull Requests / Merge Requests:
GET /api/repos/{id}/pulls
➝ 获取 PR 列表POST /api/repos/{id}/pulls
➝ 创建 PRPOST /api/repos/{id}/pulls/{id}/merge
➝ 合并 PR
- Issue / 任务管理:
GET /api/issues
➝ 获取 Issue 列表POST /api/issues
➝ 创建 IssuePUT /api/issues/{id}
➝ 更新 Issue 状态
✅ API 设计要求:
- 所有 API 必须使用 Token 进行身份验证(OAuth 2.0 / JWT / PAT)
- 基于 Token 权限(Scopes)控制 API 访问范围
- 支持 Webhook 事件推送(让开发者监听特定事件)
3. 开发者文档
🔹 目的:让开发者快速上手,知道如何用 Token 访问 API。
🔹 内容:
- [ ] 如何获取 Token
- [ ] 如何使用 Token 调用 API
- [ ] API 速率限制(Rate Limit)
- [ ] 示例代码(Python / JavaScript / Go 调用示例)
- [ ] 错误码列表
- [ ] Webhook 事件文档(如何监听仓库变更)
4. 令牌权限 & 安全机制
🔹 目的:确保 API 安全,防止 Token 滥用。
🔹 措施:
- [ ] 支持 IP 白名单(限制 API 调用来源)
- [ ] 支持 OAuth 2.0 / JWT 认证
- [ ] 支持 Token 访问日志(监控 API 访问情况)
- [ ] 支持 Token 失效机制(定期刷新 / 过期自动失效)
- [ ] API 限流(防止滥用,例如每分钟 100 次请求)
✅ 预期效果
- 开发者可以使用 API + Token 来创建自己的应用,而不需要平台的网页应用。
- 组织可以利用平台的 API 来管理仓库、代码提交、PR、CI/CD,甚至开发自己的管理系统。
- 你只需要维护 API,开发者可以自由发挥,扩展功能、做插件、做自己的 UI 界面。
✅ 前端页面
🔹 1. 登录页面 (Login Page)
目的:让用户能够安全地登录,获得 API 访问权限。
布局和功能:
- 输入框:
- 邮箱/用户名 + 密码
- OAuth 登录按钮(支持 GitHub、Google、微信等)
- 登录按钮:提交表单以验证登录
- 注册按钮:跳转到注册页面
- 忘记密码:链接到密码重置页面
- 响应式设计:适应手机和 PC 端
📌 UI 设计示例:
- 简洁的登录框,背景可以是品牌标志,表单居中显示。
- OAuth 登录按钮放在表单下方,用大图标表示常用登录方式。
🔹 2. 控制台首页 (Dashboard)
目的:展示当前用户的令牌管理和 API 使用情况。
布局和功能:
- API 请求统计:展示每日、每周、每月的 API 调用次数
- API 令牌列表:展示当前用户拥有的所有令牌,附带创建日期、过期时间、权限范围等信息
- 创建新令牌按钮:点击后跳转到令牌创建页面
- 令牌撤销按钮:撤销某个令牌
- 系统公告:展示平台相关的更新和通知
📌 UI 设计示例:
- 仪表盘:卡片式布局显示 API 调用统计
- 令牌管理表格:用表格形式展示令牌信息,可以按需排序和搜索
- 颜色标记:显示令牌过期状态,未过期显示绿色,已过期显示红色
🔹 3. 创建令牌页面 (Create Token Page)
目的:让用户可以生成新的 API 令牌并设置权限。
布局和功能:
- 令牌名称:输入框,用户可以自定义令牌名称
- 权限选择:多选框,用户可以选择该令牌的访问权限,例如:读取仓库、写入仓库、管理用户等
- 过期时间设置:选择令牌的有效期(如 1 天、1 周、永久)
- 生成按钮:点击生成令牌
- 复制按钮:生成后,用户可以复制令牌
- 说明文字:提示令牌生成后只显示一次,确保安全保管
📌 UI 设计示例:
- 权限选择:以复选框呈现,用户可以选择多个权限
- 生成按钮:明显的按钮,令牌生成后弹出提示框,告知用户“已成功生成令牌”。
🔹 4. 令牌管理页面 (Manage Tokens Page)
目的:展示用户现有的令牌列表,并允许他们编辑、删除或撤销令牌。
布局和功能:
- 令牌列表:显示所有令牌的名称、权限、过期时间、创建时间等
- 撤销令牌按钮:允许用户撤销某个令牌的访问权限
- 搜索框:根据令牌名称或权限搜索
- 令牌权限编辑:用户可以选择编辑权限范围(如果未过期)
- 过期时间管理:用户可以设置或延长令牌过期时间
📌 UI 设计示例:
- 表格展示令牌数据,允许用户排序、搜索和操作
- 删除按钮:位于每个令牌条目的右侧,点击撤销令牌
- 分组显示:根据令牌状态(有效/过期)分组显示
🔹 5. 系统设置页面 (Settings Page)
目的:提供账户和安全相关设置。
布局和功能:
- 账户信息:展示用户的个人信息,允许修改邮箱、密码等
- API 访问设置:允许用户设置访问频率、IP 白名单等安全措施
- 安全设置:启用二次验证、API 请求限制等
- 通知设置:选择是否接收令牌过期、API 限流等通知
📌 UI 设计示例:
- 表单布局:便于用户修改个人信息、密码等
- 开关按钮:启用或禁用二次验证、通知等功能
🔹 6. 令牌生成/使用教程页面 (Tutorials Page)
目的:帮助开发者了解如何使用 API 和令牌。
布局和功能:
- API 调用教程:展示如何用生成的令牌进行 API 调用
- 示例代码:用 Python、JavaScript、Go 等语言给出示例代码
- 错误处理:指导如何处理常见错误,如令牌过期、权限不足等
- FAQ:展示常见问题和解答
📌 UI 设计示例:
- 代码块:嵌入代码示例,用户可以直接复制
- 步骤指引:逐步引导开发者如何获取和使用令牌
总结:页面清单
- 登录页面
- 控制台首页
- 创建令牌页面
- 令牌管理页面
- 系统设置页面
- 令牌生成/使用教程页面