mirror of
https://gitlab.com/Binaryify/neteasecloudmusicapi.git
synced 2025-07-04 16:18:55 +08:00
add album api & unit test, improve document
This commit is contained in:
parent
f6b9ff2441
commit
6630fa1e14
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
|
|
||||||
## 版本新特性
|
## 版本新特性
|
||||||
2017/4/1 升级到 2.0 版本.增加使用文档,完成项目重构,增加更完善的单元测试,版本升级到2.0,升级 api 到 v2+,支持登录并获取用户信息和创建的歌单,可通过获取音乐 url 接口获取用户歌单里的的音乐,获取每日推荐歌单和每日推荐音乐
|
升级到 2.0 版本.增加使用文档,完成项目重构,增加更完善的单元测试,版本升级到2.0,升级 api 到 v2+,支持登录并获取用户信息和创建的歌单,可通过获取音乐 url 接口获取用户歌单里的的音乐,获取每日推荐歌单和每日推荐音乐
|
||||||
|
|
||||||
## 环境要求
|
## 环境要求
|
||||||
需要 NodeJS 6.0+ 环境
|
需要 NodeJS 6.0+ 环境
|
||||||
|
3
app.js
3
app.js
@ -13,6 +13,9 @@ app.use('/recommend/resource', require('./router/recommendResource'))
|
|||||||
|
|
||||||
app.use('/lyric', require('./router/lyric'))
|
app.use('/lyric', require('./router/lyric'))
|
||||||
|
|
||||||
|
app.use('/album', require('./router/album'))
|
||||||
|
|
||||||
|
|
||||||
app.use('/user/playlist', require('./router/userPlaylist'))
|
app.use('/user/playlist', require('./router/userPlaylist'))
|
||||||
|
|
||||||
app.use('/playlist/detail', require('./router/playlistDetail'))
|
app.use('/playlist/detail', require('./router/playlistDetail'))
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
|
|
||||||
## 版本新特性
|
## 版本新特性
|
||||||
2017/4/1 升级到 2.0 版本.增加使用文档,完成项目重构,增加更完善的单元测试,版本升级到2.0,升级 api 到 v2+,支持登录并获取用户信息和创建的歌单,可通过获取音乐 url 接口获取用户歌单里的的音乐,获取每日推荐歌单和每日推荐音乐
|
升级到 2.0 版本.增加使用文档,完成项目重构,增加更完善的单元测试,版本升级到2.0,升级 api 到 v2+,支持登录并获取用户信息和创建的歌单,可通过获取音乐 url 接口获取用户歌单里的的音乐,获取每日推荐歌单和每日推荐音乐
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
``` shell
|
``` shell
|
||||||
@ -69,6 +69,19 @@ $ node app.js
|
|||||||
|
|
||||||
### 搜索音乐
|
### 搜索音乐
|
||||||
说明:调用此接口,传入搜索关键词可以搜索该音乐,关键词可以多个,以空格隔开,如"周杰伦 搁浅"(不需要登录)
|
说明:调用此接口,传入搜索关键词可以搜索该音乐,关键词可以多个,以空格隔开,如"周杰伦 搁浅"(不需要登录)
|
||||||
|
必选参数:
|
||||||
|
keywords : 关键词
|
||||||
|
可选参数:
|
||||||
|
limit: 返回数量
|
||||||
|
type: 搜索类型;取值意义
|
||||||
|
. 1 单曲
|
||||||
|
. 10 专辑
|
||||||
|
. 100 歌手
|
||||||
|
. 1000 歌单
|
||||||
|
. 1002 用户
|
||||||
|
|
||||||
|
offset: 偏移数量,用于分页
|
||||||
|
|
||||||
接口地址:
|
接口地址:
|
||||||
`/search`
|
`/search`
|
||||||
调用例子:
|
调用例子:
|
||||||
@ -85,6 +98,17 @@ $ node app.js
|
|||||||
返回数据如下图:
|
返回数据如下图:
|
||||||

|

|
||||||
|
|
||||||
|
### 获取歌手专辑列表
|
||||||
|
说明:调用此接口,传入歌手 id,可获得歌手专辑列表
|
||||||
|
接口地址:
|
||||||
|
`/album`
|
||||||
|
调用例子:
|
||||||
|
`album?id=32311`
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 获取每日推荐歌单
|
### 获取每日推荐歌单
|
||||||
说明:调用此接口,可获得每日推荐歌单(需要登录)
|
说明:调用此接口,可获得每日推荐歌单(需要登录)
|
||||||
接口地址:
|
接口地址:
|
||||||
|
18
router/album.js
Normal file
18
router/album.js
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
const express = require("express")
|
||||||
|
const router = express()
|
||||||
|
const { createRequest } = require("../util/util")
|
||||||
|
|
||||||
|
router.get("/", (req, res) => {
|
||||||
|
const id = req.query.id
|
||||||
|
createRequest(`/api/album/${id}`, 'GET', null)
|
||||||
|
.then(result => {
|
||||||
|
res.setHeader("Content-Type", "application/json")
|
||||||
|
res.send(result)
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
res.status(502).send('fetch error')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = router
|
@ -6,7 +6,9 @@ router.get("/", (req, res) => {
|
|||||||
const keywords = req.query.keywords
|
const keywords = req.query.keywords
|
||||||
const type = req.query.type || 1
|
const type = req.query.type || 1
|
||||||
const limit = req.query.limit || 30
|
const limit = req.query.limit || 30
|
||||||
const data = 's=' + keywords + '&limit=' + limit + '&type=' + type + '&offset=0'
|
const offset = req.query.offset || 0
|
||||||
|
|
||||||
|
const data = 's=' + keywords + '&limit=' + limit + '&type=' + type + '&offset=' + offset
|
||||||
createRequest('/api/search/pc/', 'POST', data)
|
createRequest('/api/search/pc/', 'POST', data)
|
||||||
.then(result => {
|
.then(result => {
|
||||||
res.setHeader("Content-Type", "application/json")
|
res.setHeader("Content-Type", "application/json")
|
||||||
|
17
test/album.test.js
Normal file
17
test/album.test.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
const assert = require('assert')
|
||||||
|
const crypto = require('crypto')
|
||||||
|
const { createRequest } = require("../util/util")
|
||||||
|
|
||||||
|
describe('测试获取歌手专辑列表是否正常', () => {
|
||||||
|
it('数据应该有 lrc 字段', done => {
|
||||||
|
const id = 32311
|
||||||
|
createRequest(`/api/album/${id}`, 'GET', null)
|
||||||
|
.then(result => {
|
||||||
|
const code = JSON.parse(result).code
|
||||||
|
console.log("code:" + code)
|
||||||
|
assert(code === 200)
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
.catch(err => done(err))
|
||||||
|
})
|
||||||
|
})
|
@ -1,8 +1,6 @@
|
|||||||
const assert = require('assert')
|
const assert = require('assert')
|
||||||
const crypto = require('crypto')
|
const crypto = require('crypto')
|
||||||
const { createRequest } = require("../util/util")
|
const { createRequest } = require("../util/util")
|
||||||
const phone = "换成你的账号"
|
|
||||||
const password = "换成你的密码"
|
|
||||||
|
|
||||||
describe('测试获取歌词是否正常', () => {
|
describe('测试获取歌词是否正常', () => {
|
||||||
it('数据应该有 lrc 字段', done => {
|
it('数据应该有 lrc 字段', done => {
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
const assert = require('assert')
|
const assert = require('assert')
|
||||||
const crypto = require('crypto')
|
const crypto = require('crypto')
|
||||||
const { createWebAPIRequest } = require("../util/util")
|
const { createWebAPIRequest } = require("../util/util")
|
||||||
const phone = "换成你的账号"
|
|
||||||
const password = "换成你的密码"
|
|
||||||
|
|
||||||
describe('测试获取歌曲是否正常', () => {
|
describe('测试获取歌曲是否正常', () => {
|
||||||
it('歌曲的 url 不应该为空', done => {
|
it('歌曲的 url 不应该为空', done => {
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
const assert = require('assert')
|
const assert = require('assert')
|
||||||
const crypto = require('crypto')
|
const crypto = require('crypto')
|
||||||
const { createRequest } = require("../util/util")
|
const { createRequest } = require("../util/util")
|
||||||
const phone = "换成你的账号"
|
|
||||||
const password = "换成你的密码"
|
|
||||||
|
|
||||||
describe('测试搜索是否正常', () => {
|
describe('测试搜索是否正常', () => {
|
||||||
it('获取到的数据的 name 应该和搜索关键词一致', done => {
|
it('获取到的数据的 name 应该和搜索关键词一致', done => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user