应用市场系统V1.0 前后端接口对照表
应用市场系统 前后端接口对照表后端Go接口来源router.go路由定义前端调用来源index.html 各js统一返回格式{code: number, msg: string, data: any}鉴权头Authorization: Bearer {token}权限说明公开无需登录游客可访问LoginAuth登录用户admin / user均可JWTAuth‑admin仅管理员一、认证模块 auth请求方式接口路径权限请求Body返回data前端调用位置业务说明POST/api/v1/auth/register公开{username:,password:,email:}{id,username,email}注册弹窗用户注册用户名user/admin表联合查重密码bcrypt哈希POST/api/v1/auth/login公开{username:,password:}{token,role,id,username}登录弹窗统一登录优先查user再查adminPOST/api/v1/auth/change‑passwordLoginAuth{old_password:,new_password:}无修改密码弹窗修改本人密码修改后token_version1旧令牌全部失效GET/api/v1/auth/profileLoginAuth—{id,username,role,email,bio,upload_restricted,restrict_reason,created_at}账户信息弹窗获取当前登录用户资料普通用户展示上传限制状态与理由PUT/api/v1/auth/profileLoginAuth{email:,bio:}ProfileInfo账户信息弹窗保存修改邮箱、个人简介admin不可编辑POST/api/v1/auth/deregisterLoginAuth(user){confirm_delete_apps:true}无注销确认弹窗用户注销删除账户关联全部应用、申诉记录二、应用市场公开接口游客请求方式接口路径权限请求参数返回data前端调用位置业务说明GET/api/v1/stats公开—{app_count,download_count,visit_count}顶部统计栏站点统计每次调用PV1GET/api/v1/app/list公开querykeyword、tag_id、province、city、uploader_type、uploader_id[]AppWithStatsmarketView市场首页获取上架应用列表仅status1上架GET/api/v1/app/:id/detail公开path:idAppWithStatsopenMarket.js应用详情页应用详情携带下载、评分统计GET/api/v1/app/:id/public‑media公开path:id[]AppMediaopenMarket.js详情六宫格仅返回审核通过媒体详情页截图视频GET/api/v1/app/:id/comments公开path:id{list:[],comments:[],rating_avg,rating_count}openMarket.js详情页评论获取评论列表、平均分POST/api/v1/app/:id/comment公开path:idbody{user_name:,device_id:,rating:1‑5,content:,parent_id:0}Comment详情页发表评论游客/用户均可评论支持跟评GET/api/v1/download/:versionId公开path:versionIdquery:device_id{apk_url:}详情下载记录下载日志返回apk下载地址GET/api/v1/tags公开—[]Tag市场筛选下拉框获取全部审核通过标签三、登录用户接口LoginAuthadmin/user普通用户上传应用、版本、媒体、标签、申诉管理员同样可以调用这组接口| 请求方式 | 接口路径 | 权限 | 请求 | 返回data | 前端调用位置 | 业务说明 ||—|—|—|—|—|—|—|| POST |/api/v1/app/upload| LoginAuth | form‑dataapk文件、name、description、category、tag_id、province、city、update_log、version_name | AppInfo | 上传应用弹窗 | 用户上传新应用默认草稿draft || POST |/api/v1/app/:id/version| LoginAuth | path:idform‑dataapk、update_log、version_name | AppVersion | 更新版本弹窗 | 更新应用版本已审核应用更新版本自动变为pending待审核下架 || PUT |/api/v1/my/apps/:id| LoginAuth | path:idbody{name,description,category,tag_id,province,city}| AppWithStats | 编辑应用弹窗 | 编辑自己应用基础信息 || POST |/api/v1/my/apps/:id/submit‑review| LoginAuth | path:id | AppWithStats | 我的应用列表按钮 | 申请上架状态变为pending待审核 || PUT |/api/v1/my/apps/:id/status| LoginAuth | path:idbody{status:0}| AppWithStats | 我的应用下架按钮 | 用户自主下架应用仅支持status0下架不能直接上架 || GET |/api/v1/my/apps| LoginAuth | querykeyword、category、tag_id、review_status、province、city、page、page_size |{list:[],total,page,page_size,total_pages}| myView我的应用页面 | 当前登录用户自己的应用分页列表 || POST |/api/v1/tags| LoginAuth | body{name:标签名}| Tag | 创建标签弹窗 | 创建标签admin直接approveduser为pending待审核 || POST |/api/v1/upload/image| LoginAuth | form‑dataimage文件 |{url:}| 富文本wangEditor图片上传 | 富文本编辑器图片上传 || POST |/api/v1/upload/video| LoginAuth | form‑datafile视频 |{url:}| 富文本视频上传 | 富文本视频上传 || POST |/api/v1/app/:id/media/image| LoginAuth | path:idform‑data file | AppMedia | 媒体管理弹窗上传图片 | 上传应用截图图片user上传pendingadmin上传approved || POST |/api/v1/app/:id/media/video| LoginAuth | path:idform‑data file | AppMedia | 媒体管理弹窗上传视频 | 上传宣传mp4视频ffmpeg自动抽帧封面 || POST |/api/v1/app/:id/media/:mediaId/set‑main‑icon| LoginAuth | path:id,mediaId | 无 | 媒体管理弹窗 | 设置图片为主图标媒体必须审核通过 || DELETE |/api/v1/app/:id/media/:mediaId| LoginAuth | path:id,mediaId | 无 | 媒体管理弹窗删除 | 删除媒体资源同时删磁盘文件 || GET |/api/v1/app/:id/media| LoginAuth | path:id |[]AppMedia| 媒体管理弹窗 | 获取该应用全部状态媒体含pending/rejected应用拥有者/admin可见 || GET |/api/v1/media/list| LoginAuth | queryapp_id、media_type、media_status、page、page_size |{list:[],total,page,page_size,total_pages}| 全局媒体审核页面 | 媒体分页列表普通用户只能筛选自己应用媒体admin看全部 || POST |/api/v1/appeals| LoginAuth(user) | body{reason:申诉理由}| UploadAppeal | 提交申诉弹窗 | 用户提交上传权限申诉同一个用户不能存在多条pending申诉 || GET |/api/v1/appeals/mine| LoginAuth(user) | — | UploadAppeal|null | 账户信息弹窗 | 查询本人最近一条申诉记录 |四、管理员专属接口 JWTAuth‑admin4‑1 用户/上传者管理请求方式接口路径权限请求参数返回data前端调用位置业务说明GET/api/v1/usersJWTAuth‑adminquerykeyword、role、upload_restrict、page、page_size{list:[UploaderRow],total,page,page_size,total_pages}usersView用户列表页面查询useradmin全部上传者聚合应用数量、总下载量POST/api/v1/users/reset‑passwordJWTAuth‑adminbody{uploader_type:user|admin,uploader_id:1,new_password:xxx}无重置密码弹窗重置任意账号密码token_version1旧令牌失效POST/api/v1/users/:id/restrictJWTAuth‑adminpath:idbody{restrict:true|false,reason:}无用户权限设置弹窗设置普通用户上传权限限制填写限制理由管理员账号不可限制DELETE/api/v1/users/:idJWTAuth‑adminpath:id无用户列表删除按钮删除普通用户级联删除该用户全部应用、申诉记录4‑2 应用审核管理请求方式接口路径权限请求返回data前端调用位置业务说明GET/admin/api/app/listJWTAuth‑adminquery多筛选、page、page_size分页应用列表adminView管理员全部应用旧版管理后台接口保留兼容POST/admin/api/app/uploadJWTAuth‑adminform‑data上传apkAppInfoadmin上传弹窗管理员上传应用PUT/admin/api/app/statusJWTAuth‑adminbody{id:1,status:0|1}无admin后台上下架修改应用上下架上架要求review_statusapprovedDELETE/admin/api/app/deleteJWTAuth‑adminquery id无admin后台删除应用仅下架(status0)的应用允许删除删除应用版本评论下载记录静态文件POST/admin/api/app/force_off_shelfJWTAuth‑adminbody{app_id:1,off_shelf_reason:xxx}无强制下架弹窗管理员强制上架应用下架记录off_shelf_reason下架理由GET/api/v1/admin/review‑queueJWTAuth‑admin—[]AppWithStatsreviewView审核队列页面获取所有待审核review_statuspending应用列表POST/api/v1/admin/apps/:id/approveJWTAuth‑adminpath:idAppWithStats审核队列【通过】按钮审核通过review_statusapprovedstatus1上架POST/api/v1/admin/apps/:id/rejectJWTAuth‑adminpath:idbody{comment:拒绝理由}AppWithStats审核拒绝弹窗审核拒绝review_statusrejectedstatus0下架记录审核意见4‑3 标签管理请求方式接口路径权限请求返回data前端调用位置业务说明GET/api/v1/admin/tagsJWTAuth‑admin—[]TagtagView标签管理页面获取全部标签包含pending/rejectedPOST/api/v1/admin/tags/:id/approveJWTAuth‑adminpath:idTag标签列表审核通过标签审核通过POST/api/v1/admin/tags/:id/rejectJWTAuth‑adminpath:idTag标签列表拒绝标签审核拒绝PUT/api/v1/admin/tags/:idJWTAuth‑adminpath:id body{name:新标签名}Tag重命名标签弹窗重命名标签同步更新引用该标签应用的category字段DELETE/api/v1/admin/tags/:idJWTAuth‑adminpath:id无标签列表删除按钮删除标签清空应用tag_id引用不删除category文本4‑4 申诉审批管理请求方式接口路径权限请求返回data前端调用位置业务说明GET/api/v1/admin/appealsJWTAuth‑admin—[]UploadAppealappealView申诉队列页面获取全部pending待审批申诉POST/api/v1/admin/appeals/:id/approveJWTAuth‑adminpath:idUploadAppeal申诉列表通过按钮申诉审批通过解除用户上传限制POST/api/v1/admin/appeals/:id/rejectJWTAuth‑adminpath:id body{comment:拒绝理由}UploadAppeal申诉拒绝弹窗申诉拒绝维持上传限制4‑5 媒体资源审核全局媒体请求方式接口路径权限请求返回data前端调用位置业务说明POST/api/v1/admin/media/:id/approveJWTAuth‑adminpath:id无全局媒体列表【审核通过】按钮媒体资源审核通过POST/api/v1/admin/media/:id/rejectJWTAuth‑adminpath:id body{reject_msg:驳回理由}无媒体驳回弹窗媒体驳回如果该媒体是主图标自动清除is_main_icon标记五、静态资源接口请求方式路径权限说明GET/static/*filepath公开自定义静态处理器支持HTTP‑Range断点续传apk、图片、视频防路径穿越攻击GET/公开返回index.html单页面六、遗留旧版admin兼容路由/admin/api/*/admin/api/loginPOST 登录接口无需鉴权旧版管理后台登录返回token与/api/v1/auth/login能力重复做向后兼容。补充说明token_version机制修改密码、重置密码user/admin表token_version字段1JWT载荷携带签发时的token_version中间件比对数据库版本号不一致直接401鉴权失败强制重新登录。文件上传全部为multipart/form‑data表单JSON接口使用Content‑Type:application/json。分页统一结构{list:[],total:100,page:1,page_size:10,total_pages:10}业务错误全部返回code:1鉴权失败返回code:401成功返回code:0。

相关新闻

COORD坐标转换器实战指南:从高斯投影到四参数七参数

COORD坐标转换器实战指南:从高斯投影到四参数七参数

简介:这是一款面向GIS工程师、测绘人员及导航开发者的轻量级坐标转换工具,专为解决多源地理数据在WGS84、CGCS2000、北京54、西安80、Pulkovo 1942等主流坐标系间快速互转的刚需。资源包共40个文件,含3个核心可执行程序(COORD.exe…

2026/8/31 23:51:24 阅读更多 →
VCCM600电源模块三种冷却方式与散热设计解析

VCCM600电源模块三种冷却方式与散热设计解析

VCCM600 这个系列刚出来的时候,我第一反应不是看功率密度,也不是看效率曲线,而是它那个“Can be Cooled Three Ways”的slogan。干电源系统集成这行时间久了都明白,一块AC-DC电源模块的散热方案,往往比电气参数更早决定…

2026/8/31 23:50:24 阅读更多 →
模块电源三种冷却方式解析:VCCM600散热设计与降额选型指南

模块电源三种冷却方式解析:VCCM600散热设计与降额选型指南

VoxPower的VCCM600系列刚看到的时候,我的第一反应是:600W级模块电源说"可以用三种方式冷却",这不是什么新鲜事,市面上很多半砖、全砖产品在设计时就考虑了传导、对流、强制风冷几种散热路径,但多数只是"…

2026/8/31 23:50:24 阅读更多 →

最新新闻

离散小波变换+WEKA:心电信号分类的特征工程实践

离散小波变换+WEKA:心电信号分类的特征工程实践

简介:一套面向生物医学信号处理与机器学习研究者的心律失常分类完整方案,基于离散小波变换(DWT)完成ECG特征提取,并通过WEKA与MATLAB监督训练实现自动分类。资源包共539个文件,约28.11MB,涵盖40…

2026/9/1 20:00:31 阅读更多 →
多媒体数据上机实验指南:图像音频视频处理与代码实现

多媒体数据上机实验指南:图像音频视频处理与代码实现

简介:西电多媒体数据上机实验完整代码与数据集包,面向计算机、电子、通信等专业的多媒体实验课程,覆盖图像、音频、视频三大核心处理方向,帮助学生在动手编程中掌握数字化、编码与增强等基础方法。内容包含多种典型算法实现&#…

2026/9/1 20:00:31 阅读更多 →
不可错过的AI专著生成技巧,巧用工具一键生成20万字专著!

不可错过的AI专著生成技巧,巧用工具一键生成20万字专著!

AI专著生成软件介绍与使用指南 一、AI专著写作现状与软件引入 对于很多正在写论文的朋友来说,最大的难题就是时间少、任务多的矛盾。写学术专著通常需要几年时间,而我们平时还要忙着上课、做实验、参加各种学术活动,能用来写作的时间大多是…

2026/9/1 20:00:31 阅读更多 →
标准 Git 上传流程

标准 Git 上传流程

一、第一阶段:项目初始化1.创建项目后立即执行# 进入项目目录 cd D:\go\gin-blog-system# 初始化Git仓库 git init# 创建.gitignore文件(保护敏感信息) echo "# 编译产物 *.exe *.dll bin/ obj/# 日志文件 logs/ *.log# 敏感配置 config…

2026/9/1 20:00:31 阅读更多 →
COC跑团Replay制作全流程:从Log清洗到剪辑成片

COC跑团Replay制作全流程:从Log清洗到剪辑成片

如果你手里攒下了一场 COC(Call of Cthulhu,克苏鲁的呼唤)跑团实录,想把它做成一部能让路人也能看懂、能代入的完结向 Replay,却又不知道从哪一步开始,这篇文章就是为你准备的。本文以“哀歌弥赛亚”这一典…

2026/9/1 20:00:31 阅读更多 →
科研代码能跑,不等于结论正确:Codex适合科研人员吗?

科研代码能跑,不等于结论正确:Codex适合科研人员吗?

先给结论 如果你的日常研究包含 Python、R、MATLAB 脚本、实验数据、软件依赖或论文代码仓库,Codex 值得纳入工具箱。它的优势不是“替你判断科研结论”,而是围绕真实项目文件工作:阅读代码、修改脚本、查看终端输出并继续排错。 如果你主要…

2026/9/1 19:59:30 阅读更多 →

日新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/1 0:03:21 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/1 0:03:21 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/1 0:03:21 阅读更多 →

周新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/9/1 19:44:48 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

2026/9/1 18:13:19 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/8/31 14:32:14 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/1 0:03:21 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/1 0:03:21 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/1 0:03:21 阅读更多 →