跳到主要内容

OpenRouter系统更新:新增应用商店

· 阅读需 5 分钟
Knox Anderson
OpenRouter 核心团队

应用商店系统是一个专业的企业级应用管理系统,专为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. 管理后台

  • 功能:

    • 应用的全套增删改查操作
    • 支持批量操作
    • 表单验证
    • 图片预览
    • 搜索与筛选
    • 响应式的表格/卡片布局
  • 表单字段:

    • 基础信息(名称、版本、描述)
    • 链接(下载、源码、文档、作者)
    • 分类与标签
    • 精选应用开关
    • 状态管理

使用指南

用户

  1. 浏览应用:访问 /appstore 查看所有可用应用
  2. 搜索功能:使用搜索栏查找特定应用
  3. 筛选功能:选择分类或使用排序选项缩小结果范围
  4. 下载应用:点击下载按钮获取应用并跟踪下载记录

管理

  1. 访问管理界面:访问 /manage(仅限管理员)
  2. 添加新应用:点击“添加应用”并填写必填信息
  3. 编辑应用:点击任意应用卡片上的编辑图标
  4. 删除应用:点击删除图标(需确认)
  5. 精选应用:切换“精选”开关以高亮显示应用

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 提醒