Front Design For GeSong System Content Before Front(User) 1. Index Page 2. Search Page 3. History Page 4. List Page 5. Confirm Page Back(Admin) 1. Access Page 2. Audit Page 3. List Page 4. System Page Before All template use WebApi to deal the operate Recommand Vue.js, but you still can use jQuery(Ajax) :D All Response Code (Int) 10000 Success Successfully requested 20000 No enough times No enough times to song 30000 Forbidden Wrong Access (For User) Front (User) Index Page The index page use the root path ("/"), Server will response a 301 code to jump to search page ("/search") Search Page The search page use the path "/search" A user have to log in to use the search function WebApi Interface Detail: Path: /api/search Method: POST Args: keyword string keyword of the song token string user token Response Format: Json Json Args: code int response code content list list of songs List of Songs Args(content): pid int platform id id int song id(platform) name string name of song artists list list of artists album dict album of this song url string the media url of this song (source platform or system cache) List of Artists Args: id int artist id(platform) name string name of this artist cover string image url of this aritist Album Args: id int album id(platform) name string name of this album cover string image url of this album History Page The history page use the path "/history" Anybody can directly get the history of songs WebApi Interface Detail: Path: /api/history Method: GET Args: Nothing Response Format: Json Json Args: code int response code content list list of history songs List of Songs Args(content): pid int platform id id int song id(platform) name string name of song artists list list of artists album dict album of this song url string the media url of this song (system cache) List of Artists Args: id int artist id(platform) name string name of this artist cover string image url of this aritist Album Args: id int album id(platform) name string name of this album cover string image url of this album List Page The list page use the path "/list" Anybody can directly get the list of whitelist and blacklist WebApi Interface Detail: Path: /api/list Method: GET Args: Nothing Response Format: Json Json Args: code int response code content dict dict of list, included whitelist and blacklist Content Dict(content): white list songs list of whitelist black list songs list of blacklist List of Songs Args: pid int platform id id int song id(platform) name string name of song artists list list of artists album dict album of this song List of Artists Args: id int artist id(platform) name string name of this artist cover string image url of this aritist Album Args: id int album id(platform) name string name of this album cover string image url of this album Confirm Page The confirm page use the path "/confirm" This page only use for the twice confirm Located from the search page Read the parameter from url on front code (Javascript) Get Parameter: platform int platform id id int id of the song Then use the id and platform id to requests the song detail WebApi Interface Detail: Path: /api/detail Method: POST Args: platform int id of the platform id int id of the song token string user token Response Format: Json Json Args: code int response code content list list of songs List of Songs Args(content): pid int platform id id int song id(platform) name string name of song artists list list of artists album dict album of this song url string the media url of this song (source platform or system cache) List of Artists Args: id int artist id(platform) name string name of this artist cover string image url of this aritist Album Args: id int album id(platform) name string name of this album cover string image url of this album After user clicking the confirm button, send request to this interface WebApi Interface Detail: Path: /api/detail Method: POST Args: platform int id of the platform id int id of the song date string YYYY-MM-DD token string user token Response Format: Json Json Args: code int response code Back (Admin) Access Page The access page use the path "/admin/access" Only Admin can request this interface Get list of user: WebApi Interface Detail: Path: /api/userlist Method: POST Args: token string user(admin operator) token Response Format: Json Json Args: code int response code content list list of all users List of all users (content): uid int user id nickname string user's nickname name string user's real name (if realname auth passed) Request for change operate: WebApi Interface Detail: Path: /api/admin/access Method: POST Args: token string user(admin operator) token uid int user's id to change access operate string admin or user, destination Response Format: Json Json Args: code int response code Audit Page (Writing) The audit page use the path "/admin/audit/song" for song audit Only Admin can request this interface Get list of songs that songed by users WebApi Interface Detail: Path: /api/auditlist/song Method: POST Args: token string user(admin operator) token Response Format: Json Json Args: code int response code content list list of all users List of songs that users songed (content): sid int id of this song(v.) event uid int user id nickname string user's nickname name string user's real name (if realname auth passed) platform int platform of the song id int id of the song name string name of song artists list list of artists album dict album of this song url string the media url of this song (source platform or system cache) Request for audit operate: WebApi Interface Detail: Path: /api/admin/audit Method: POST Args: token string user(admin operator) token sid int id of this song(v.) event operate string pass, abort and ignore Response Format: Json Json Args: code int response code List Page (Writing) The list manage page use the path "/admin/list" Only Admin can request this interface Requests the public interface to get the list of blacklist songs and whitelist songs /api/list Request for list operate: WebApi Interface Detail: Path: /api/ Method: POST Args: token string user(admin operator) token sid int id of this song(v.) event operate string pass, abort and ignore Response Format: Json Json Args: code int response code