InfiniteMusic/document/front_design/README.md

166 lines
5.4 KiB
Markdown
Raw Normal View History

2022-02-27 07:35:44 +00:00
# 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)
2022-03-04 04:52:35 +00:00
##### `10000` `Success` `Successfully requested`
##### `20000` `No enough times` `No enough times to song`
##### `30000` `Forbidden` `Wrong Access (For User)`
2022-02-27 07:35:44 +00:00
2022-03-04 04:52:35 +00:00
## Front (User)
2022-02-27 07:35:44 +00:00
### 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`
2022-03-04 04:52:35 +00:00
###### `url` `string` `the media url of this song (source platform or system cache)`
2022-02-27 07:35:44 +00:00
##### 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"
2022-03-04 04:52:35 +00:00
#### Anybody can directly get the history of songs
2022-02-27 07:35:44 +00:00
#### WebApi Interface Detail:
##### Path: `/api/history`
##### Method: `GET`
##### Args: `Nothing`
##### Response Format: `Json`
##### Json Args:
###### `code` `int` `response code`
2022-03-04 04:52:35 +00:00
###### `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