MonsterSirenApi

所属分类:Node.js
开发工具:TypeScript
文件大小:0KB
下载次数:0
上传日期:2023-10-25 03:08:50
上 传 者sh-1993
说明:  塞壬唱片官网 Nodejs API,
(Nodejs API, official website of Siren Records,)

文件列表:
.eslintignore (22, 2023-12-21)
.eslintrc.cjs (460, 2023-12-21)
.vscode/ (0, 2023-12-21)
.vscode/settings.json (179, 2023-12-21)
LICENSE (1052, 2023-12-21)
addSuffixJs.js (1854, 2023-12-21)
api.ts (46, 2023-12-21)
bin/ (0, 2023-12-21)
bin/sync.js (1358, 2023-12-21)
docs/ (0, 2023-12-21)
docs/dev/ (0, 2023-12-21)
docs/dev/宸叉湁涓撹緫ID涓瑙.md (6539, 2023-12-21)
docs/dev/宸叉湁姝屾洸ID涓瑙.md (19903, 2023-12-21)
docs/dev/鎺ュ彛涓瑙.md (2921, 2023-12-21)
env.d.ts (137, 2023-12-21)
index.ts (120, 2023-12-21)
nodemon.json (208, 2023-12-21)
package.json (1553, 2023-12-21)
packages/ (0, 2023-12-21)
packages/declare/ (0, 2023-12-21)
packages/declare/modules.ts (803, 2023-12-21)
packages/modules/ (0, 2023-12-21)
packages/modules/AllModules.ts (119, 2023-12-21)
packages/modules/album.ts (1984, 2023-12-21)
packages/modules/other.ts (553, 2023-12-21)
packages/modules/search.ts (1991, 2023-12-21)
packages/modules/song.ts (1306, 2023-12-21)
packages/modules/trend.ts (1987, 2023-12-21)
packages/server/ (0, 2023-12-21)
packages/server/index.ts (2872, 2023-12-21)
packages/server/parseModule.ts (585, 2023-12-21)
packages/utils/ (0, 2023-12-21)
packages/utils/getCurrentTime.ts (263, 2023-12-21)
packages/utils/isValidKey.ts (144, 2023-12-21)
packages/utils/judgeCorrectPath.ts (495, 2023-12-21)
packages/utils/request.ts (1922, 2023-12-21)
pnpm-lock.yaml (133510, 2023-12-21)
server.ts (48, 2023-12-21)
... ...

# MonsterSirenApi 塞壬唱片后台 Nodejs API 因为接口不是很多,就算是个小玩具来玩,也可以将其作为一些作业的后台使用 - [接口一览](https://github.com/QingXia-Ela/MonsterSirenApi/blob/main/docs/dev/%E6%8E%A5%E5%8F%A3%E4%B8%80%E8%A7%88.md) - [已有专辑ID一览](https://github.com/QingXia-Ela/MonsterSirenApi/blob/main/docs/dev/%E5%B7%B2%E6%9C%89%E4%B8%93%E8%BE%91ID%E4%B8%80%E8%A7%88.md) - [已有歌曲ID一览](https://github.com/QingXia-Ela/MonsterSirenApi/blob/main/docs/dev/%E5%B7%B2%E6%9C%89%E6%AD%8C%E6%9B%B2ID%E4%B8%80%E8%A7%88.md) 灵感与部分源码来源: https://github.com/Binaryify/NeteaseCloudMusicApi ## 版本要求 node v16.15.0 及以上 ## 作为 Nodejs 服务器使用(推荐) ### 克隆仓库到本地 ```bash git clone https://github.com/QingXia-Ela/MonsterSirenApi.git cd MonsterSirenApi pnpm i ``` ### 启动服务器 ```bash npm start ``` ## npm 包调用独立 api ### 下载包 ```bash npm i monster-siren-api ``` ### api 直接调用 #### 使用方法 ```js import { albums, album_$id_data } from 'monster-siren-api' // 直接使用,不需要参数 albums().then(({data}) => { console.log(data) }) // 搭配参数使用,具体请参考接口一览文档,也可以通过 ts 声明查看 album_$id_data({ id: 6667 }).then(({data}) => { console.log(data) }) ``` #### api 引入参数说明 每个 api 均有对应的 ts 声明,也可以查看 [接口一览](https://github.com/QingXia-Ela/MonsterSirenApi/blob/main/docs/dev/%E6%8E%A5%E5%8F%A3%E4%B8%80%E8%A7%88.md) 进行查询 目前所有接口都是 get 请求,只有还没有做的登录接口会有 post 与 options 假设我们要引入查询专辑数据的 api,他的路径是这样的:`/album/:id/data`,其中包含 `id` params。我们只需要将 `/` 替换为 `_`、`:` 替换为 `$` 即为 api 的别名 如果你觉得这样子引入很难受,那么可以通过 `as` 关键字改名字:`import { album_$id_data as aid } from 'monster-siren-api` #### 非 Nodejs 使用时的额外注意事项 注意!虽然这些可以在浏览器中引入,但是其本质是直接发起请求,没有处理跨域,所以浏览器不能直接使用;如果使用 electron 或 tauri 等可以通过重写请求方法来处理跨域: ```js // api import { search } from 'monster-siren-api/api' // tauri 可跨域 fetch import { fetch } from '@tauri-apps/api/http' // 发起请求时重写请求方法 search({ request: async (method, url) => { return await fetch(url, { method }) } }) // 照常接收数据 .then(({ data }) => { }) ``` ### 引入服务器实例 **注意!只支持Nodejs!** ```js import server from 'monster-siren-api' server({ // 可自定义端口号 port: 3000 }).then((e) => { // 返回 express 服务器实例 console.log(e) }) ``` ## 开发指南 Nodejs 需要支持 `--experimental-specifier-resolution=node` 实验性特色功能,因为开发过程中没有为 ts 文件添加扩展名,ts 实时编译也不会携带扩展名 ### 自行扩展其他接口(暂不推荐) 由于当初架构设计不合理等一系列原因,扩展接口变成了一件比较麻烦的事情,具体体现在接收的参数需要在扩展接口内自行解构,然后并放置到 `body, params` 等对应位置 可以看源码是怎么处理那堆屎山的,如果有更好的想法本人十分甚至九分欢迎 PR !

近期下载者

相关文件


收藏者