OpenRouter系统更新:新增应用商店
· 阅读需 5 分钟
应用商店系统是一个专业的企业级应用管理系统,专为OpenRouter项目打造。它允许管理员/用户(将来开放)管理应用程序,并为用户提供了一个美观的界面来搜索、浏览和下载应用。
![]() |
---|
功能
🎯 核心功能
- 现代化 UI 设计:采用 shadcn/ui 组件的专业响应式界面
- 分类管理:按类别(开发、生产力、工具、娱乐、通用)组织应用
- 搜索与筛选:支持按分类和排序筛选的强大搜索功能
- 精选应用:突出显示重要或流行的应用程序
- 下载追踪:统计下载量以进行分析
- 管理员管理:支持完整的增删改查(CRUD)操作
- 多语言支持:包含英语和中文翻译
🔐 安全与权限
- 基于角色的访问控制:公开浏览,仅限管理员管理(将来对用户发布者开放)
- 身份验证:与现有用户系统集成
- 输入验证:对所有应用数据进行服务器端验证
📱 响应式设计
- 移动优先:适配所有屏幕尺寸
- 网格/列表视图:支持切换不同浏览模式
- 触控优化:针对触控交互优化
架构
后端组件
1. 数据库模型
type App struct {
Id int `json:"id" gorm:"primaryKey"`
Name string `json:"name" gorm:"not null;index"`
ShortDescription string `json:"short_description"`
Description string `json:"description" gorm:"type:text"`
Category string `json:"category"`
Version string `json:"version"`
Author string `json:"author"`
AuthorUrl string `json:"author_url"`
ThumbnailUrl string `json:"thumbnail_url"`
DownloadUrl string `json:"download_url"`
SourceUrl string `json:"source_url"`
DocumentationUrl string `json:"documentation_url"`
Tags string `json:"tags"` // Comma-separated
Status int `json:"status"`
Featured bool `json:"featured"`
DownloadCount int64 `json:"download_count"`
CreatedTime int64 `json:"created_time"`
UpdatedTime int64 `json:"updated_time"`
CreatedBy int `json:"created_by"`
UpdatedBy int `json:"updated_by"`
}
2. API 控制器
-
公开端点:
GET /api/app
- 分页并筛选列出所有应用GET /api/app/search
- 按关键词搜索应用GET /api/app/featured
- 获取精选应用GET /api/app/category/:category
- 按分类获取应用GET /api/app/:id
- 获取单个应用详情POST /api/app/download/:id
- 记录下载并获取下载链接
-
管理端点(需管理员认证):
POST /api/app
- 创建新应用PUT /api/app
- 更新现有应用DELETE /api/app/:id
- 删除应用
前端组件
1. 应用商店
-
功能:
- 精美的网格/列表布局与应用卡片
- 带图标的分类筛选
- 搜索功能
- 排序选项(名称、下载量、日期)
- 精选应用专区
- 响应式设计
- 下载追踪
-
关键组件:
- 应用卡片(含缩略图、描述和元数据)
- 带实时筛选的搜索栏
- 带表情图标的分类标签
- 大数据集的分页功能
- 加载状态与错误处理
2. 管理后台
-
功能:
- 应用的全套增删改查操作
- 支持批量操作
- 表单验证
- 图片预览
- 搜索与筛选
- 响应式的表格/卡片布局
-
表单字段:
- 基础信息(名称、版本、描述)
- 链接(下载、源码、文档、作者)
- 分类与标签
- 精选应用开关
- 状态管理
使用指南
用户
- 浏览应用:访问
/appstore
查看所有可用应用 - 搜索功能:使用搜索栏查找特定应用
- 筛选功能:选择分类或使用排序选项缩小结果范围
- 下载应用:点击下载按钮获取应用并跟踪下载记录
管理
- 访问管理界面:访问
/manage
(仅限管理员) - 添加新应用:点击“添加应用”并填写必填信息
- 编辑应用:点击任意应用卡片上的编辑图标
- 删除应用:点击删除图标(需确认)
- 精选应用:切换“精选”开关以高亮显示应用
API 参考
公开端点
获取所有应用
GET /api/app?p=0&category=development&order=name%20asc&featured=true
参数:
p
: 页码(从0开始)category
: 按类别筛选(选填)order
: 排序方式(选填)featured
: 仅显示推荐应用(选填)
响应:
{
"success": true,
"data": [...apps],
"total": 25
}
搜索应用
GET /api/app/search?keyword=coding
下载应用
POST /api/app/download/1
Response:
{
"success": true,
"data": {
"download_url": "/download",
"download_count": 1543
}
}
安全考量
输入验证
- 所有 URL 均在服务端进行验证
- 文件上传(如添加)应进行扫描和验证
- 通过 GORM ORM 防止 SQL 注入
访问控制
- 公开端点用于浏览应用
- 仅限管理员的管理端点
- 基于角色的权限,集成现有认证系统
速率限制
- 下载追踪防止滥用
- 生产环境中应对搜索端点进行速率限制
性能优化
数据库
- 为频繁查询的字段(名称、分类、推荐)建立索引
- 分页限制大型结果集
- 缓存推荐应用和热门搜索
前端
- 图片懒加载
- 大型列表的虚拟滚动
- 管理组件的代码拆分
CDN 集成
- 将应用缩略图和资源存储于 CDN
- 在边缘节点缓存 API 响应
监控与分析
需追踪的指标
- 每个应用的下载量
- 热门搜索词
- 分类使用模式
- 管理员活动日志
未来改进计划
规划功能
- 应用评价与评分:用户反馈系统
- 版本历史:跟踪应用版本变更
- 自动更新:新版本通知系统
- 分析仪表盘:下载与使用统计
- 批量导入:支持 CSV/JSON 格式的多应用导入
- API 密钥:针对 API 的速率限制与访问控制
- 高级搜索:按作者、标签、日期范围筛选
- 应用合集:精选列表与捆绑包
集成方案
- GitHub 集成:自动同步 GitHub 发布
- 包管理器:与 npm、pip 等集成
- CI/CD:自动化的应用发布流程
- 通知:新应用的邮件/Slack 提醒