該項目會以 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