提交 768418c8 编写于 作者: B binaryify

add album api & unit test, improve document

上级 f5b79f3f
......@@ -10,7 +10,7 @@
## 版本新特性
2017/4/1 升级到 2.0 版本.增加使用文档,完成项目重构,增加更完善的单元测试,版本升级到2.0,升级 api 到 v2+,支持登录并获取用户信息和创建的歌单,可通过获取音乐 url 接口获取用户歌单里的的音乐,获取每日推荐歌单和每日推荐音乐
升级到 2.0 版本.增加使用文档,完成项目重构,增加更完善的单元测试,版本升级到2.0,升级 api 到 v2+,支持登录并获取用户信息和创建的歌单,可通过获取音乐 url 接口获取用户歌单里的的音乐,获取每日推荐歌单和每日推荐音乐
## 环境要求
需要 NodeJS 6.0+ 环境
......
......@@ -13,6 +13,9 @@ app.use('/recommend/resource', require('./router/recommendResource'))
app.use('/lyric', require('./router/lyric'))
app.use('/album', require('./router/album'))
app.use('/user/playlist', require('./router/userPlaylist'))
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
......@@ -69,6 +69,19 @@ $ node app.js
### 搜索音乐
说明:调用此接口,传入搜索关键词可以搜索该音乐,关键词可以多个,以空格隔开,如"周杰伦 搁浅"(不需要登录)
必选参数:
keywords : 关键词
可选参数:
limit: 返回数量
type: 搜索类型;取值意义
. 1 单曲
. 10 专辑
. 100 歌手
. 1000 歌单
. 1002 用户
offset: 偏移数量,用于分页
接口地址:
`/search`
调用例子:
......@@ -85,6 +98,17 @@ $ node app.js
返回数据如下图:
![搜索音乐](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%AD%8C%E8%AF%8D.png)
### 获取歌手专辑列表
说明:调用此接口,传入歌手 id,可获得歌手专辑列表
接口地址:
`/album`
调用例子:
`album?id=32311`
![获取专辑](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E4%B8%93%E8%BE%91.png)
### 获取每日推荐歌单
说明:调用此接口,可获得每日推荐歌单(需要登录)
接口地址:
......
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
\ No newline at end of file
......@@ -6,7 +6,9 @@ router.get("/", (req, res) => {
const keywords = req.query.keywords
const type = req.query.type || 1
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)
.then(result => {
res.setHeader("Content-Type", "application/json")
......
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))
})
})
\ No newline at end of file
const assert = require('assert')
const crypto = require('crypto')
const { createRequest } = require("../util/util")
const phone = "换成你的账号"
const password = "换成你的密码"
describe('测试获取歌词是否正常', () => {
it('数据应该有 lrc 字段', done => {
......
const assert = require('assert')
const crypto = require('crypto')
const { createWebAPIRequest } = require("../util/util")
const phone = "换成你的账号"
const password = "换成你的密码"
describe('测试获取歌曲是否正常', () => {
it('歌曲的 url 不应该为空', done => {
......
const assert = require('assert')
const crypto = require('crypto')
const { createRequest } = require("../util/util")
const phone = "换成你的账号"
const password = "换成你的密码"
describe('测试搜索是否正常', () => {
it('获取到的数据的 name 应该和搜索关键词一致', done => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册