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 !
近期下载者:
相关文件:
收藏者: