{"repo":"Rain120/qq-music-api","free":true,"listed":false,"github":"https://github.com/Rain120/qq-music-api","clone":"git clone https://github.com/Rain120/qq-music-api.git","description":"QQ 音乐API koa2实现","language":"TypeScript","stars":1042,"topics":["api","qq-music","koa2","nodejs","qq-music-api","apis","music","qq"],"license":"MIT","category":"media-processing","readme_excerpt":"QQ Music API QQ 音乐 API，基于 Koa2 + TypeScript 构建，通过 Web 端请求 QQ 音乐接口数据。本项目集成了自动化数据处理代理，提供高效、易用的接口服务。 有问题请提 issue。欢迎阅读 参与贡献指南 参与项目开发，并查阅 AI 代理指南 了解自动化机制。 当前主干分支已完成 TypeScript 化改造，核心源码、测试与构建链路均已切换到 TypeScript 体系。 TypeScript 版本请使用 next 分支，JavaScript 版本请使用 main 分支。 ⚠️ 当前代码仅供学习，不可做商业用途。 API结构图 目前暂时没有时间做登录模块的接口，欢迎各位大佬给我 PR , 阿里嘎多 环境要求 本项目采用 Koa2 + TypeScript 技术栈，建议使用较新的 Node.js LTS 版本进行开发与运行。 🚀 快速入门 (Quick Start) 📦 安装 请确保您的本地 Node.js 版本满足 环境要求。 🔨 项目启动 项目默认监听端口是 3200 ，启动成功后可在浏览器访问 http://localhost:3200 体验接口服务。 🏗️ 项目架构 - 应用入口： src/app.ts 负责启动 Koa 、注册中间件、挂载路由，并暴露 /explorer 、 /explorer/index.html 、 /explorer/metadata 。 - 控制器层： src/controllers/ 负责处理 HTTP 入参、调用服务层并整理返回结果。 - 服务层： src/services/ 负责访问 QQ 音乐相关能力，是歌曲、歌手、歌单、排行榜等数据获取逻辑的核心承载层。 - Explorer 元数据层： src/config/apiExplorer.ts 维护接口清单、请求方法、分类、参数与 POST 请求体示例，驱动调试表单动态渲染。 - Explorer 逻辑层： src/explorer/contracts 、 src/explorer/domain 、 src/explorer/application 负责状态模型、树构建、搜索筛选和 Store/Command 逻辑。 - Explorer 视图层： public/explorer/ 提供静态页面、交互脚本和样式，组成完整的本地调试工作台。 - 测试与文档： tests/ 覆盖控制器、服务和 Explorer， docs/ 用于 Docsify 文档与界面截图展示。 🔎 API Explorer - API Explorer 是项目内置的本地接口调试工作台，用于快速选择接口、填写参数、发送请求并查看结果。 - 默认入口地址是 http://localhost:3200/explorer ，访问 /explorer 时会自动重定向到 /explorer/index.html 。 - Explorer 元数据接口为 http://localhost:3200/explorer/metadata ，页面会基于该接口动态生成可调试的接口列表与表单。 Explorer 启动方式 - npm run dev 默认会设置 AUTO OPEN EXPLORER=true ，因此服务启动后会自动拉起浏览器。 - npm start 默认只启动服务，不会自动打开页面，可手动访问 http://localhost:3200/explorer 。 - 在 CI 或测试环境下不会自动打开浏览器。 Explorer 操作步骤 1. 启动服务","default_branch":null,"files":null,"tree":[],"storefront":"/r/Rain120","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Rain120/qq-music-api/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}