今日实战:流媒体网站--数据库设计、配置文件
API设计:用户
- 创建(注册)用户:URL: /user Method: POST, SC: 201, 400, 500
- 用户登录:URL: /user/:username Method: POST, SC: 200, 400, 500
- 获取用户基本信息:URL: /user/:username Method: GET, SC: 200, 400, 401, 403, 500
- 用户注销:URL: /user/:username Method: DELETE, SC: 204, 400, 401, 403, 500
goroutine 是非常轻量级的协程,每个协程仅占用4K内存
listen -> RegisterHandlers -> handlers
API设计:用户资源
SC -> Status Code
- List all videos:URL:/user/:username/videos Method: GET, SC: 200, 400, 500
- Get one video:URL:/user/:/username/videos/:vid-id Method: GET, SC: 200, 400, 500
- Delete on video: URL:/user/:username/videos/:vid-id Method: GET, SC: 204, 400, 401, 403, 500
API设计:评论
- Show comments:URL:/videos/:vid-id/comments Method: GET, SC: 200, 400, 500
- Post a comment:URL:/videos/:vid-id/comments Method: POST, SC: 201, 400, 500
- Delete a comment:URL:/videos/:vid-id/comment/:comment-id Method: DELETE, SC: 204, 400, 401, 403, 500
数据库设计:用户
| 1234 | TABLE: usersid UNSIGNED INT, PRIMARY KEY, AUTO_INCREMENTlogin_name VARCHAR(64), UNIQUE KEYpwd TEXT |
|---|
数据库设计:视频资源
| 123456 | TABLE: video_infoid VARCHAR(64), PRIMARY KEY, NOT NULLauthor_id UNSIGNED INTname TEXTdisplay_ctime TEXTcreate_time DATETIME |
|---|
数据库设计:评论
| 123456 | TABLE: commentsid VARCHAR(64), PRIMARY, NOT NULLvideo_id VARCHAR(64)author_id UNSIGNED INTcontent TEXTtime DATETIME |
|---|
数据库设计:sessions
| 1234 | TABLE: sessionssession_id TINYTEXT, PRIMARY KEY, NOT NULLTTL TINYTEXTlogin_name VARCHAR(64) |
|---|