該項目會以 React 全家桶 (會使用 16.8 最新 API 及 hooks) 以及 mobx 數據流方案爲基礎打造的一款高質量的移動端音樂類 WebApp 。javascript
涉及的技術棧主要有:前端
此篇爲第一篇,主要是 網易雲 EggJs API 的實現。後面的數據都會源於網易雲官方的數據。 網易雲音樂 EggJs 版 API,github 地址,接口正在持續更新中,目前已經支持網易雲音樂中的大部分接口,包含登陸註冊。java
跨站請求僞造 (CSRF), 僞造請求頭 , 調用官方 API。react
本項目不提供線上 demo,請不要輕易信任使用他人提供的公開服務,以避免發生安全問題,泄露本身的帳號和密碼 webpack
部分接口如登陸接口不能調用太頻繁 , 不然可能會觸發 503 錯誤或者 ip 高頻錯誤 ,若需頻繁調用 , 須要準備 IP 代理池. ios
本項目僅供學習使用,請尊重版權,請勿利用此項目從事商業行爲 git
這裏簡要提一下 EggJs 的中間件。Egg 是基於 Koa 實現的,因此 Egg 的中間件形式和 Koa 的中間件形式是同樣的,都是基於洋蔥圈模型。github
/** * 處理cookie */
module.exports = () => {
return async function (ctx, next) {
const { response } = ctx;
await next();
response.append('Set-Cookie', response.body && response.body.cookie);
};
};
複製代碼
module.exports = () => {
return async function (ctx, next) {
try {
await next();
} catch (error) {
ctx.body = error.body;
ctx.status = error.status;
}
};
};
複製代碼
特別聲明,接口示範使用如下格式 web
Method /xxx/:xxxx/xxx
@body:
{
"***": "**********",
"**"?: "*********" // ?表明可選
}
@param:
{
"***": "********"
}
@query:
{
"***": "***********",
"***"?: "**********"
}
複製代碼
參數統一聲明 limit : 返回數量 , 默認爲 30 offset : 偏移數量,用於分頁 , 如 :( 當前頁碼 -1)*30, 其中 30 爲 limit 的值 , 默認爲 0 axios
必選參數 :
phone: 手機號碼
password: 密碼
複製代碼
接口地址 :
/login/cellphone
複製代碼
可選參數 :
rememberLogin: 30天免登陸,默認false
複製代碼
調用例子 :
POST /login/cellphone
@body:
{
phone: "**********",
password: "*****",
rememberLogin?: true
}
複製代碼
必選參數 :
email: 手機號碼
password: 密碼
複製代碼
接口地址 :
/login/email
複製代碼
可選參數 :
rememberLogin: 30天免登陸,默認false
複製代碼
調用例子 :
POST /login/email
@body:
{
email: "**********",
password: "*****",
rememberLogin: true
}
複製代碼
必選參數 :
nickname: 暱稱
複製代碼
接口地址 :
/login/init/profile
複製代碼
調用例子 :
POST /login/init/profile
@body
{
nickname: "**********"
}
複製代碼
必選參數 :
cellphone: 手機號碼
複製代碼
接口地址 :
/login/sms/captcha/send
複製代碼
可選參數 :
ctcode: 國家區號,默認86即中國
複製代碼
調用例子 :
POST /login/sms/captcha/send
// body
{
ctcode?: "86",
cellphone: "*******"
}
複製代碼
必選參數 :
cellphone: 手機號碼
captcha: 驗證碼
複製代碼
接口地址 :
/login/sms/captcha/verify
複製代碼
可選參數 :
ctcode: 國家區號,默認86即中國
複製代碼
調用例子 :
POST /login/sms/captcha/verify
// body
{
ctcode?: "86",
cellphone: "*******",
captcha: "****"
}
複製代碼
必選參數 :
cellphone: 手機號碼
複製代碼
接口地址 :
/login/cellphone/check/exist
複製代碼
可選參數 :
countrycode: 國家碼,用於國外手機號登錄,例如美國傳入:1
複製代碼
調用例子 :
POST /login/cellphone/check/exist
// body
{
countrycode?: "86",
cellphone: "*******"
}
複製代碼
接口地址 :
/login/refresh
調用例子 :
GET / login / refresh;
複製代碼
接口地址 :
/login/status
複製代碼
調用例子 :
GET / login / status;
複製代碼
接口地址 :
/logout
複製代碼
調用例子 :
GET / logout;
複製代碼
說明 : 登錄後調用此接口,可獲取用戶建立的電臺
必選參數 :
無
複製代碼
接口地址 :
/user/audios
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / user / audios;
複製代碼
說明 : 登錄後調用此接口,可刪除雲盤歌曲
必選參數 :
ids: 歌曲id數組
複製代碼
接口地址 :
/user/cloud/song/del
複製代碼
可選參數 :
無
複製代碼
調用例子 :
DELETE /user/cloud/song/del
@body
{
ids: ["****","****"]
}
複製代碼
說明: 登錄後調用此接口,傳入雲盤歌曲 ids,可獲取雲盤數據詳情
必選參數 :
ids: 多個歌曲id用","分隔
複製代碼
接口地址 :
/user/cloud/songs/info
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /user/cloud/songs/info
@query
{
ids: "***,***"
}
複製代碼
說明: 登錄後調用此接口 , 可獲取雲盤數據 , 獲取的數據沒有對應 url, 須要再調用一 次 /song/url 獲取 url。
必選參數 :
無
複製代碼
接口地址 :
/user/cloud
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 當前頁碼 -1)*30, 其中 30 爲 limit 的值 , 默認爲 0
複製代碼
調用例子 :
GET /user/cloud
// query
{
limit?: 100,
offset?: 1
}
複製代碼
說明 : 登錄後調用此接口,能夠獲取用戶詳情
必選參數 :
無
複製代碼
接口地址 :
/user/info
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / user / info;
複製代碼
說明 : 登錄後調用此接口,能夠獲取用戶電臺
必選參數 :
cellphone: 手機號碼
複製代碼
接口地址 :
無
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / user / djs;
複製代碼
說明 : 登錄後調用此接口,能夠獲取用戶動態
必選參數 :
無
複製代碼
接口地址 :
/user/event
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
lasttime : 返回數據的 lasttime ,默認-1,傳入上一次返回結果的 lasttime,將會返回下一頁的數據
複製代碼
調用例子 :
GET /user/event
@query
{
limit?: 30,
lasttime: -1
}
複製代碼
說明 : 登錄後調用此接口,能夠獲取用戶粉絲列表
必選參數 :
無
複製代碼
接口地址 :
/user/followeds
複製代碼
可選參數 :
可選參數 : limit : 返回數量 , 默認爲 30
lasttime : 返回數據的 lasttime ,默認-1,傳入上一次返回結果的 lasttime,將會返回下一頁的數據
複製代碼
調用例子 :
GET /user/followeds
@query
{
limit?: 30,
lasttime: -1
}
複製代碼
說明 : 登錄後調用此接口,能夠獲取用戶關注列表
必選參數 :
無
複製代碼
接口地址 :
/user/follows
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 當前頁碼 -1)*30, 其中 30 爲 limit 的值 , 默認爲 0
複製代碼
調用例子 :
GET /user/follows
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 登錄後調用此接口,能夠獲取用戶歌單
必選參數 :
無
複製代碼
接口地址 :
/user/playlist
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 當前頁碼 -1)*30, 其中 30 爲 limit 的值 , 默認爲 0
複製代碼
調用例子 :
GET /user/playlist
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明:登錄後調用此接口,可獲取用戶播放記錄
必選參數 :
無
複製代碼
接口地址 :
/user/playrecord
複製代碼
可選參數 :
type: type=1 時只返回週數據, type=0 時返回全部數據
複製代碼
調用例子 :
GET /user/playrecord
@query
{
type?: 0
}
複製代碼
說明:登錄後調用此接口,可獲取用戶收藏計數
必選參數 :
無
複製代碼
接口地址 :
/user/subcount
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / user / subcount;
複製代碼
說明 : 登錄後調用此接口,傳入相關信息,能夠更新用戶信息
必選參數 :
gender: 性別 0:保密 1:男性 2:女性
birthday: 出生日期,時間戳 unix timestamp
nickname: 用戶暱稱
province: 省份id // 能夠調用/custom/citylist接口獲取
city: 城市id // 能夠調用/custom/citylist接口獲取
signature:用戶簽名
複製代碼
接口地址 :
/user/info
複製代碼
可選參數 :
無
複製代碼
調用例子 :
PUT /user/info
// body
{
gender: 0
birthday: 134567788
nickname: "***"
province: 400022
city: 2344554
signature:"****"
}
複製代碼
說明 : 登錄後調用此接口,能夠獲取用戶操做記錄
必選參數 :
無
複製代碼
接口地址 :
/user/logs
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / user / logs;
複製代碼
說明 : 登錄後調用此接口,能夠獲取用戶 FM
必選參數 :
無
複製代碼
接口地址 :
/user/fm
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / user / fm;
複製代碼
說明 : 調用此接口 , 可獲取推薦電臺
必選參數 :
無
複製代碼
接口地址 :
/user/rec/djprogram
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / user / rec / djprogram;
複製代碼
說明 : 調用此接口 , 可獲取推薦 MV
必選參數 :
無
複製代碼
接口地址 :
/user/rec/mv
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / user / rec / mv;
複製代碼
說明 : 調用此接口 , 可獲取推薦新歌
必選參數 :
無
複製代碼
接口地址 :
/user/rec/newsong
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / user / rec / newsong;
複製代碼
說明 : 調用此接口 , 可獲取獨家放送
必選參數 :
無
複製代碼
接口地址 :
/user/privatecontent
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / user / privatecontent;
複製代碼
說明 : 調用此接口 , 可獲取獨獨家推薦歌單
必選參數 :
無
複製代碼
接口地址 :
/user/rec/playlist
複製代碼
可選參數 :
limit:返回數量 , 默認爲 30
複製代碼
調用例子 :
GET /user/rec/playlist
@query
{
limit?: 30
}
複製代碼
說明 : 調用此接口 , 可獲取專輯動態信息
必選參數 :
albumId: 專輯ID
複製代碼
接口地址 :
/album/:albumId/detail/dynamic
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /album/:albumId/detail/dynamic
@param
{
albumId: 12244
}
複製代碼
說明 : 調用此接口 , 可獲取最新專輯
必選參數 :
無
複製代碼
接口地址 :
/album/latest
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / album / latest;
複製代碼
說明 : 調用此接口 , 可收藏|取消收藏 專輯
必選參數 :
albumId:專輯ID
actionType: 操做類型,收藏:"sub" ,取消收藏:"unsub"
複製代碼
接口地址 :
/album/:albumId/sub/:actionType
複製代碼
可選參數 :
limit:返回數量 , 默認爲 30
複製代碼
調用例子 :
POST /album/:albumId/sub/:actionType
@param
{
albumId: "****",
actionType: "sub"
}
複製代碼
說明 : 調用此接口 , 可獲取收藏專輯列表
必選參數 :
無
複製代碼
接口地址 :
/album/sublist
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 當前頁碼 -1)*30, 其中 30 爲 limit 的值 ,
複製代碼
調用例子 :
GET /album/sublist
@query
{
offset?: 0,
limit?: 30
}
複製代碼
說明 : 調用此接口 , 可獲取專輯信息
必選參數 :
albumId: 專輯ID
複製代碼
接口地址 :
/album/:albumId/info
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /album/:albumId/info
@param
{
albumId: "****"
}
複製代碼
說明 : 調用此接口 , 可獲取歌手列表
必選參數 :
無
複製代碼
接口地址 :
/artist/list
複製代碼
可選參數 :
調用例子 :
GET /artist/list
@param
{
limit?: 30,
offset?: 1
categoryCode: 1001,
initial: 'a'
}
複製代碼
說明 : 調用此接口 , 可獲取歌手簡介
必選參數 :
artistId: 歌手ID
複製代碼
接口地址 :
/artist/:artistId/brief
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /artist/:artistId/brief
@param
{
artistId: "****"
}
複製代碼
說明 : 調用此接口 , 可獲取歌手信息
必選參數 :
artistId: 歌手ID
複製代碼
接口地址 :
/artist/:artistId/info
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /artist/:artistId/info
@param
{
artistId: "****"
}
複製代碼
說明 : 調用此接口 , 可獲取歌手專輯
必選參數 :
artistId: 歌手ID
複製代碼
接口地址 :
/artist/:artistId/albums
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /artist/:artistId/albums
@param
{
artistId: "****"
}
@query
{
limit?: 30,
offset: 1
}
複製代碼
說明 : 調用此接口 , 可獲取歌手 MV
必選參數 :
artistId: 歌手ID
複製代碼
接口地址 :
/artist/:artistId/mv
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /artist/:artistId/mv
@param
{
artistId: "****"
}
@query
{
limit?: 30,
offset: 1
}
複製代碼
說明 : 調用此接口 , 可獲取專輯信息
必選參數 :
artistId: 歌手ID
複製代碼
接口地址 :
/artist/:artistId/top/song
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /artist/:artistId/top/song
@param
{
artistId: "****"
}
複製代碼
說明 : 調用此接口 , 可獲取專輯信息
必選參數 :
artistId: 歌手ID
actionType: 操做類型,收藏:"sub",取消收藏:"unsub"
複製代碼
接口地址 :
/artist/:artistId/sub/:actionType
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /artist/:artistId/sub/:actionType
@param
{
artistId: "****",
actionType: "sub"
}
複製代碼
說明 : 調用此接口 , 可獲取專輯信息
必選參數 :
無
複製代碼
接口地址 :
/artist/sublist
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /artist/sublist
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取資源評論
必選參數 :
type: 資源類型,可選:
專輯:"album",
電臺:"dj"
歌曲:"music",
MV:"mv",
歌單:"playlist",
視頻:"video",
動態:"event"
resourceId: 資源ID
複製代碼
接口地址 :
/comment/resource/:resourceId/comments
複製代碼
可選參數 :
limit: 取出評論數量 , 默認爲 20
offset: 偏移數量 , 用於分頁 , 如 :( 評論頁數 -1)*20, 其中 20 爲 limit 的值
beforeTime: 分頁參數,取上一頁最後一項的time,獲取下一頁數據(獲取超過5000條評論的時候須要用到)
複製代碼
調用例子 :
GET /comment/resource/:resourceId/hot/comments
@param {
resourceId: "***"
}
@query
{
limit?: 30,
offset?: 1,
type: "music",
beforeTime: 0
}
複製代碼
說明 : 調用此接口 , 可獲取資源熱門評論
必選參數 :
type: 資源類型,可選:
專輯:"album",
電臺:"dj"
歌曲:"music",
MV:"mv",
歌單:"playlist",
視頻:"video",
動態:"event"
resourceId: 資源ID
複製代碼
接口地址 :
/comment/resource/:resourceId/hot/comments
複製代碼
可選參數 :
limit: 取出評論數量 , 默認爲 20
offset: 偏移數量 , 用於分頁 , 如 :( 評論頁數 -1)*20, 其中 20 爲 limit 的值
beforeTime: 分頁參數,取上一頁最後一項的time,獲取下一頁數據(獲取超過5000條評論的時候須要用到)
複製代碼
調用例子 :
GET /comment/resource/:resourceId/hot/comments
@param {
resourceId: "***"
}
@query
{
limit?: 30,
offset?: 1,
type: "music",
beforeTime: 0
}
複製代碼
說明 : 調用此接口 , 可獲取資源雲村熱評
必選參數 :
無
複製代碼
接口地址 :
/comment/hotwall/list
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / comment / hotwall / list;
複製代碼
說明 : 調用此接口 , 可點贊 | 取消點贊 評論
必選參數 :
resourceId: 資源ID
actionType: 操做類型,點贊:"like",取消點贊:"unlike"
commentId: 評論ID
type: 資源類型,可選:
專輯:"album",
電臺:"dj"
歌曲:"music",
MV:"mv",
歌單:"playlist",
視頻:"video",
動態:"event"
複製代碼
接口地址 :
/comment/resource/:resourceId/like/:actionType
複製代碼
可選參數 :
無
複製代碼
調用例子 :
POST /comment/resource/:resourceId/like/:actionType
@param
{
resourceId: "***",
actionType: "like"
}
@body
{
commentId: "***",
type: "music"
}
複製代碼
說明 : 調用此接口 , 可發表資源評論
必選參數 :
resourceId: 資源ID
content: 評論內容
type: 資源類型,可選:
專輯:"album",
電臺:"dj"
歌曲:"music",
MV:"mv",
歌單:"playlist",
視頻:"video",
動態:"event"
複製代碼
接口地址 :
/comment/resource/:resourceId/comment/send
複製代碼
可選參數 :
無
複製代碼
調用例子 :
POST /comment/resource/:resourceId/comment/send
@body
{
resourceId: "***",
content: "***",
type: "music"
}
複製代碼
說明 : 調用此接口 , 可刪除資源評論
必選參數 :
resourceId: 資源ID
commentId: 評論ID
type: 資源類型,可選:
專輯:"album",
電臺:"dj"
歌曲:"music",
MV:"mv",
歌單:"playlist",
視頻:"video",
動態:"event"
複製代碼
接口地址 :
/comment/resource/:resourceId/comment
複製代碼
可選參數 :
無
複製代碼
調用例子 :
DELETE /comment/resource/:resourceId/comment
@param
{
resourceId: "***"
}
@body {
commentId: "***",
type: "music"
}
複製代碼
說明 : 調用此接口 , 可回覆資源評論
必選參數 :
resourceId: 資源ID
commentId: 評論ID
content: 評論內容
type: 資源類型,可選:
專輯:"album",
電臺:"dj"
歌曲:"music",
MV:"mv",
歌單:"playlist",
視頻:"video",
動態:"event"
複製代碼
接口地址 :
/comment/resource/:resourceId/comment/:commentId/reply
複製代碼
可選參數 :
無
複製代碼
調用例子 :
POST /comment/resource/:resourceId/comment/:commentId/reply
@param
{
resourceId: "***",
commentId: "***"
}
@body {
content: "****",
type: "music"
}
複製代碼
說明 : 調用此接口 , 可獲取 MV 列表
必選參數 :
無
複製代碼
接口地址 :
/mv/list
複製代碼
可選參數 :
調用例子 :
GET /mv/list
@query
{
area?: 0,
type?: 0,
order?: 0,
offset?: 1,
limit?: 30,
}
複製代碼
說明 : 調用此接口 , 可獲取 MV 詳
必選參數 :
mvId: MV ID
複製代碼
接口地址 :
/mv/:mvId/detail
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /mv/:mvId/detail
@param
{
mvId: "***"
}
複製代碼
說明 : 調用此接口 , 可獲取網易出品 MV
必選參數 :
無
複製代碼
接口地址 :
/mv/exclusive/rcmd
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /mv/exclusive/rcmd
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取最新 MV
必選參數 :
無
複製代碼
接口地址 :
/mv/latest
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /mv/latest
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可收藏 | 取消收藏 MV
必選參數 :
mvId: MV ID
actionType: 操做類型,收藏:"sub",取消收藏:"unsub"
複製代碼
接口地址 :
/mv/:mvId/sub/:actionType
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /mv/:mvId/sub/:actionType
@param
{
mvId: "***",
actionType: "sub"
}
複製代碼
說明 : 調用此接口 , 獲取 MV 收藏列表
必選參數 :
無
複製代碼
接口地址 :
/mv/sublist
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /mv/sublist
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取專輯信息
必選參數 :
mvId: MV ID
resolution: 分辨率,默認1080
複製代碼
接口地址 :
/mv/url
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /mv/url
@query
{
mvId: "***",
resolution?: 1080
}
複製代碼
說明 : 調用此接口 , 可獲取電臺 banner
必選參數 :
無
複製代碼
接口地址 :
/dj/banner
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / dj / banner;
複製代碼
說明 : 調用此接口 , 可獲取電臺非熱門分類
必選參數 :
無
複製代碼
接口地址 :
/dj/category/excludehot
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / dj / category / excludehot;
複製代碼
說明 : 調用此接口 , 可獲取電臺推薦分類
必選參數 :
無
複製代碼
接口地址 :
/dj/category/rec
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / dj / category / rec;
複製代碼
說明 : 調用此接口 , 可獲取電臺分類列表
必選參數 :
無
複製代碼
接口地址 :
/dj/category/list
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / dj / category / list;
複製代碼
說明 : 調用此接口 , 可獲取熱門電臺
必選參數 :
無
複製代碼
接口地址 :
/dj/hot
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /dj/hot
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取付費電臺
必選參數 :
無
複製代碼
接口地址 :
/dj/paygift
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /dj/paygift
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取電臺 24 小時節目榜
必選參數 :
無
複製代碼
接口地址 :
/dj/program/toplist/hours
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
複製代碼
調用例子 :
GET /dj/program/toplist/hours
@query
{
limit?: 30
}
複製代碼
說明 : 調用此接口 , 可獲取電臺節目榜單
必選參數 :
無
複製代碼
接口地址 :
/dj/program/toplist
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /dj/program/toplist
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取電臺節目列表
必選參數 :
djId: 電臺ID
複製代碼
接口地址 :
/dj/:djId/program/list
複製代碼
可選參數 :
asc: 排序方式,默認爲 false (新 => 老 ) 設置 true 可改成 老 => 新
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /dj/:djId/program/list
@param
{
djId: "***"
}
@query
{
asc?: false,
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取分類熱門電臺
必選參數 :
categoryId: 分類ID
複製代碼
接口地址 :
/dj/category/:categoryId/djs
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /dj/category/:categoryId/djs
@param
{
categoryId: "***"
}
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取精選分類電臺列表
必選參數 :
typeId: 類型ID,數字
有聲書: 10001,
知識技能: 453050,
商業財經: 453051,
人文歷史: 11,
外語世界: 13,
親子寶貝: 14,
創做|翻唱: 2001,
音樂故事: 2,
3D|電子: 10002,
相聲曲藝: 8,
情感調頻: 3,
美文讀物: 6,
脫口秀: 5,
廣播劇: 7,
二次元: 3001,
明星作主播: 1,
娛樂|影視: 4,
科技科學: 453052,
校園|教育: 4001,
旅途|城市: 12,
複製代碼
接口地址 :
/dj/type/:typeId/rec/djs
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /dj/type/:typeId/rec/djs
@param
{
typeId: 1
}
複製代碼
說明 : 調用此接口 , 可獲取推薦電臺
必選參數 :
無
複製代碼
接口地址 :
/dj/rec/djs
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET / dj / rec / djs;
複製代碼
說明 : 調用此接口 , 訂閱 | 取消訂閱 電臺
必選參數 :
djId: 電臺ID
actionType: 操做類型,訂閱:"sub" 取消訂閱:"unsub"
複製代碼
接口地址 :
/dj/:djId/sub/:actionType
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
POST /dj/:djId/sub/:actionType
@param
{
djId: "***",
actionType: "sub"
}
複製代碼
說明 : 調用此接口 , 可獲取訂閱電臺列表
必選參數 :
無
複製代碼
接口地址 :
/dj/sublist
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /dj/sublist
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取今日優選電臺
必選參數 :
無
複製代碼
接口地址 :
/dj/totay/perfered
複製代碼
可選參數 :
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /dj/totay/perfered
@query
{
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取 24 小時榜電臺
必選參數 :
無
複製代碼
接口地址 :
/dj/toplist/hours
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
複製代碼
調用例子 :
GET /dj/toplist/hours
@query
{
limit?: 30
複製代碼
說明 : 調用此接口 , 可獲取電臺新人榜
必選參數 :
無
複製代碼
接口地址 :
/dj/toplist/newcomer
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /dj/toplist/newcomer
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可付費精品
必選參數 :
無
複製代碼
接口地址 :
/dj/toplist/pay
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
複製代碼
調用例子 :
GET /dj/toplist/pay
@query
{
limit?: 30
}
複製代碼
說明 : 調用此接口 , 可獲取流行熱榜
必選參數 :
無
複製代碼
接口地址 :
/dj/toplist/popular
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
複製代碼
調用例子 :
GET /dj/toplist/popular
@query
{
limit?: 30
}
複製代碼
說明 : 調用此接口 , 可獲取專輯信息
必選參數 :
無
複製代碼
接口地址 :
/dj/toplist
複製代碼
可選參數 :
type: 榜單類型, 0 爲新晉電臺榜,1 爲熱門電臺榜,默認爲0
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /dj/toplist
@query
{
type: 0,
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取電臺節目詳情
必選參數 :
djId: 電臺ID
複製代碼
接口地址 :
/dj/:djId/program/detail
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /dj/:djId/program/detail
@param
{
djId: "***"
}
複製代碼
說明 : 調用此接口 , 可獲取電臺詳情
必選參數 :
djId: 電臺ID
複製代碼
接口地址 :
/dj/:djId/detail
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /dj/:djId/detail
@param
{
djId: "***"
}
複製代碼
說明 : 調用此接口 , 可獲取專輯排行榜
必選參數 :
無
複製代碼
接口地址 :
/top/album
複製代碼
可選參數 :
area: 'ALL' | 'ZH' | 'EA' | 'KR' | 'JP'
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /top/album
@query
{
area?: 'ZH',
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 獲取熱門歌手
必選參數 :
無
複製代碼
接口地址 :
/top/artist
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /top/artist
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 獲取新歌列表
必選參數 :
接口地址 :
/top/list
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /top/list
@query
{
type: 0
}
複製代碼
說明 : 調用此接口 , 獲取 MV 排行榜
必選參數 :
無
複製代碼
接口地址 :
/top/mv
複製代碼
可選參數 :
調用例子 :
GET /top/mv
@query
{
area: '華語',
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 獲取高質量歌單排行榜
必選參數 :
無
複製代碼
接口地址 :
/top/quality/playlist
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
lasttime: 分頁參數,取上一頁最後一個歌單的 updateTime 獲取下一頁數據,默認爲0
category: 分類
可選類型: 所有,華語,歐美,韓語,日語,粵語,小語種,運動,ACG,影視原聲,流行,搖滾,後搖,古風,民謠,輕音樂,電子,器樂,說唱,古典,爵士
複製代碼
調用例子 :
GET /top/quality/playlist
@query
{
category: '華語'
limit?: 30,
lasttime: 0,
}
複製代碼
說明 : 調用此接口 , 獲取歌單排行榜
必選參數 :
無
複製代碼
接口地址 :
/top/playlist
複製代碼
可選參數 :
order: 可選值爲 'new' 和 'hot', 分別對應最新和最熱 , 默認爲 'hot'
category: ,分類," 華語 "、" 古風 " 、" 歐美 "、" 流行 ", 默認爲 "所有",可從歌單分類接口獲取(/playlist/category/list)
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /top/playlist
@query
{
order?: 'new',
category?: '古風'
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 可獲取新歌榜單
必選參數 :
無
複製代碼
接口地址 :
top/songs
複製代碼
可選參數 :
area:'所有' | '華語' | '歐美' | '日本' | '韓國 複製代碼
調用例子 :
GET /top/songs
@query
{
area: '華語'
}
複製代碼
說明 : 調用此接口 , 獲取歌手榜
必選參數 :
無
複製代碼
接口地址 :
/toplist/artist
複製代碼
可選參數 :
type: 數字,可選1-4
1: '華語',
2: '歐美',
3: '日本',
4: '韓國',
複製代碼
調用例子 :
GET /toplist/artist
@query
{
type: 2
}
複製代碼
說明 : 調用此接口 , 獲取全部榜單內容摘要
必選參數 :
無
複製代碼
接口地址 :
/toplist/detail
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / toplist / detail;
複製代碼
說明 : 調用此接口 , 可獲取榜單介紹
必選參數 :
無
複製代碼
接口地址 :
/toplist/introduction
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / toplist / introduction;
複製代碼
說明 : 調用此接口 , 獲取視頻信息
必選參數 :
videoId:視頻ID
複製代碼
接口地址 :
/video/:videoId/detail
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /video/:videoId/detail
@query
{
videoId: "***"
}
複製代碼
說明 : 調用此接口 , 獲取視頻分組列表
必選參數 :
無
複製代碼
接口地址 :
/video/group/list
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET /video/group/list;
複製代碼
說明 : 調用此接口 , 獲取視頻分組下的視頻
必選參數 :
groupId: 分組ID
複製代碼
接口地址 :
/video/group/videos
複製代碼
可選參數 :
resolution:分辨率,默認1080
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /video/group/videos
@query
{
groupId: "***",
resolution?: 1080,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 收藏|取消收藏 視頻
必選參數 :
videoId:視頻ID
actionType:操做類型,收藏:"sub",取消收藏: "unsub"
複製代碼
接口地址 :
/video/:videoId/sub/:actionType
複製代碼
可選參數 :
無
複製代碼
調用例子 :
POST /video/:videoId/sub/:actionType
@query
{
videoId: "***",
actionType: "sub"
}
複製代碼
說明 : 調用此接口 , 可獲取專輯信息
必選參數 :
videoIds: 視頻ID,多個以逗號分隔
複製代碼
接口地址 :
/video/urls
複製代碼
可選參數 :
resolution:分辨率,默認1080
複製代碼
調用例子 :
GET /video/urls
@query
{
videoIds: "***,***",
resolution?: 1080
}
複製代碼
說明 : 調用此接口 , 獲取歌單分類列表
必選參數 :
無
複製代碼
接口地址 :
/playlist/category/list
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / playlist / category / list;
複製代碼
說明 : 調用此接口 , 建立歌單
必選參數 :
name: 歌單名字,
privacy:0 爲普通歌單,10 爲隱私歌單
複製代碼
接口地址 :
/playlist/create
複製代碼
可選參數 :
無
複製代碼
調用例子 :
POST /playlist/create
@query
{
name: "***",
privacy: 0
}
複製代碼
說明 : 調用此接口 , 刪除歌單
必選參數 :
pid:歌單ID
複製代碼
接口地址 :
/playlist/delete
複製代碼
可選參數 :
無
複製代碼
調用例子 :
DELETE /playlist/delete
@body
{
pid: "***"
}
複製代碼
說明 : 調用此接口 , 更新歌單描述
必選參數 :
pid: 歌單ID
description: 描述
複製代碼
接口地址 :
/playlist/des/update
複製代碼
可選參數 :
無
複製代碼
調用例子 :
PUT /playlist/des/update
@query
{
pid: "***",
description: "***"
}
複製代碼
說明 : 調用此接口 , 獲取歌單詳情
必選參數 :
pid: 歌單ID
複製代碼
接口地址 :
/playlist/detail
複製代碼
可選參數 :
subNum: 歌單最近的 subNum 個收藏者
複製代碼
調用例子 :
GET /playlist/detail
@query
{
pid: "****",
subNum?: 10
}
複製代碼
說明 : 調用此接口 , 獲取熱門歌單
必選參數 :
無
複製代碼
接口地址 :
/playlist/hot
複製代碼
可選參數 :
無
複製代碼
調用例子 :
GET / playlist / hot;
複製代碼
說明 : 調用此接口 , 更新歌單名
必選參數 :
pid: 歌單ID
name: 歌單名
複製代碼
接口地址 :
/playlist/name/update
複製代碼
可選參數 :
無
複製代碼
調用例子 :
PUT /playlist/name/update
@query
{
pid: "***",
name: "***"
}
複製代碼
說明 : 調用此接口 , 訂閱 | 取消訂閱 歌單
必選參數 :
pid: 歌單ID
actionType: 訂閱:'subscribe' 取消訂閱: 'unsubscribe'
複製代碼
接口地址 :
/playlist/:pid/sub/:actionType
複製代碼
可選參數 :
無
複製代碼
調用例子 :
POST /playlist/:pid/sub/:actionType
@param
{
pid: "***",
actionType: "subscribe"
}
複製代碼
說明 : 調用此接口 , 獲取歌單訂閱者
必選參數 :
pid: 歌單ID
複製代碼
接口地址 :
/playlist/:pid/subscribers
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
GET /playlist/:pid/subscribers
@param
{
pid: "***"
}
@query
{
limit?: 30,
offset?: 1
}
複製代碼
說明 : 調用此接口 , 更新歌單標籤
必選參數 :
pid: 歌單ID
tags: 歌單標籤
複製代碼
接口地址 :
/playlist/:pid/tags/update
複製代碼
可選參數 :
limit : 返回數量 , 默認爲 30
offset : 偏移數量,用於分頁 , 如 :( 頁數 -1)*30, 其中 30 爲 limit 的值,默認爲 0
複製代碼
調用例子 :
PUT /playlist/:pid/tags/update
@query
{
pid: "***"
}
@body
{
tags: "***"
}
複製代碼
說明 : 調用此接口 , 添加歌單歌曲
必選參數 :
pid: 歌單ID
songIds:歌曲ID數組
複製代碼
接口地址 :
/playlist/:pid/songs/add
複製代碼
可選參數 :
無
複製代碼
調用例子 :
POST /playlist/:pid/songs/add
{
pid: "***"
}
@body
{
songIds: ["***", "****"]
}
複製代碼
說明 : 調用此接口 , 可獲取專輯信息
必選參數 :
pid: 歌單ID
songIds:歌曲ID數組
複製代碼
接口地址 :
/playlist/:pid/songs/del
複製代碼
可選參數 :
無
複製代碼
調用例子 :
DELETE /playlist/:pid/songs/del
@param
{
pid: "***"
}
@body
{
songIds: ["***", "****"]
}
複製代碼
說明 : 調用此接口 , 可獲取專輯信息
必選參數 :
pid: 歌單ID
description:描述
tags:標籤
複製代碼
接口地址 :
/playlist/:pid/update
複製代碼
可選參數 :
無
複製代碼
調用例子 :
PUT /playlist/:pid/update
{
pid: "***"
}
@body
{
description: "***",
tags: "***"
}
複製代碼
目前的實現的接口主要是這些,接口暫時未通過嚴格的測試,若有問題,請給我提 issue。貢獻出來,是方便你們一塊兒學習,禁止商用。下期預告,webpack 環境配置。關注個人微信公衆號,共同成長。
@author: WaterMan