針對上一篇FastAPI(六十二)實戰開發《在線課程學習系統》需求分析需求的功能,我們對需要的接口進行梳理,大概的規划出來現有的接口,作為我們第一版的接口的設計出版,然后我們根據設計的接口。
2.1用戶注冊接口
路徑:/user/register
請求方式:POST
請求格式:json
是否依賴登陸:否
參數:
| 參數名稱 | 參數含義 | 參數是否必須 | 參數類型 |
|---|---|---|---|
| username | 用戶名 8-16位 | 是 | str |
| password | 密碼,長度8-16位,md5加密 | 是 | str |
| role | 類型,學生或者老師,默認:學生 | 是 | str |
| jobnum | 工號,8位數字 | 否 | int |
| studentnum | 學籍號,16位數字 | 否 | int |
| sex | 性別,男女。 | 是 | str |
| age | 年齡,必須大於18,小於65 | 是 | int |
接口返回:json
{
"code":200,
"data":'成功',
"message":"成功"
}
返回碼說明
| 代碼 | 含義 |
|---|---|
| 200 | 注冊成功 |
| 100101 | 注冊失敗 |
| 100102 | 身份和對應號不匹配 |
| 100103 | 年紀大小不符合 |
| 100104 | 用戶名重復 |
| 100105 | 密碼加密失敗 |
| 100106 | 用戶名長度不符合 |
2.2登陸接口
路徑:/user/login
請求方式:post
請求格式:json
是否依賴登陸:否
請求參數
| 字段 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| username | 用戶名 | 是 | str |
| password | 密碼 | 是 | str |
返回例子
{
"code":200,
"data":{
"token":""
},
"message":"成功"
}
返回狀態碼說明
| 代碼 | 含義 |
|---|---|
| 200 | 成功 |
| 100201 | 登陸失敗 |
| 100202 | 重復登陸 |
| 100203 | 產生token失敗 |
| 100204 | 輸入密碼錯誤次數過多,賬號暫時鎖定,請30min再來登錄 |
| 100205 | 用戶不存在 |
| 100206 | 密碼錯誤 |
2.3個人信息
路徑:/user/info
請求方式:post
請求格式:json
請求參數:無
是否依賴登陸:是
返回格式:json
{
"code":200,
"data":{
},
"message":"成功"
}
返回狀態碼說明
| 代碼 | 含義 |
|---|---|
| 200 | 成功 |
2.4 修改密碼
路徑:/user/changepassword
請求方式:post
請求格式:json
返回格式:json
是否依賴登陸:是
| 參數 | 說明 | 是否必須 | 類型 |
|---|---|---|---|
| oldpassword | 原密碼 | 是 | str |
| newspassword | 新密碼 | 是 | str |
返回示例
{
"code":200,
"data":'成功',
"message":"成功"
}
返回狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 100301 | 原密碼校驗失敗 |
| 100302 | 密碼保存失敗 |
| 100303 | 新密碼長度不匹配 |
| 100304 | 新舊密碼不能一樣 |
2.5 留言
路徑:/user/addmessage
請求方式:post
請求格式:json
是否依賴登陸:是
請求參數:
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| id | 用戶id | 是 | int |
| message | 內容 | 是 | str |
返回格式:json
{
"code":200,
"data":{
},
"message":"成功"
}
返回狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 100501 | 自己不能給自己留言 |
| 100502 | 留言長度在5-500個字符長度 |
| 100503 | 留言用戶不存在 |
2.6 查看留言
路徑:/user/viewmessage
請求方式:get
請求格式:json
是否依賴登陸:是
請求參數:無
返回格式:json
{
"code":200,
"data":{
},
"message":"成功"
}
返回狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
2.7留言列表
路徑:/user/messagelist
請求方式:get
請求格式:json
是否依賴登陸:是
請求參數:無
返回格式:json
{
"code":200,
"data":[
],
"message":"成功"
}
返回狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
2.8回復留言
路徑:/user/rebackmessage/
請求方式:post
請求格式:json
是否依賴登陸:是
請求參數
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| id | 留言的id | 是 | int |
| message | 內容 | 是 | str |
返回格式:json
{
"code":200,
"data":{},
"message":"成功"
}
返回狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 100801 | 回復留言失敗 |
| 100802 | 回復留言內容不能為空 |
| 100803 | 回復內容應該在5-500字 |
| 100804 | 回復留言id不存在 |
2.9刪除留言
路徑:/user/deletemessage/{id}
請求方式:get
請求格式:json
是否依賴登陸:是
請求參數:
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| id | 留言的id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
返回狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 100901 | 刪除留言不存在 |
| 100902 | 權限不足 |
2.10創建課程
路徑:/course/create
請求方式:post
請求格式:json
是否依賴登陸:是
請求參數:
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| name | 課程名稱(長度2-50) | 是 | str |
| icon | 課程的icon | 否 | str |
| desc | 描述 | 否 | text |
| catalog | 目錄 | 否 | json |
| onshelf | 是否上架(0上架,1下架) | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 101002 | 課程名稱不能重復 |
| 101003 | 課程創建失敗 |
2.11課程詳情
路徑:/course/detail/{id}
請求方式:get
請求格式:json
是否依賴登陸:是
請求參數
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| id | 課程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 101101 | 課程不存在 |
2.12 課程編輯
路徑:/course/edit
請求方式:put
請求格式:json
是否依賴登陸:是
請求參數
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| name | 課程名稱(長度2-50) | 是 | str |
| id | 課程id | 是 | int |
| icon | 課程icon | 否 | str |
| desc | 課程描述 | 否 | str |
| catalog | 課程目錄 | 否 | json |
| onshelf | 是否上架(0上架,1下架) | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 101201 | 課程id不存在 |
| 101202 | 權限不足 |
| 101203 | 課程名稱不能重復 |
2.13 查看評論
路徑:/course/viewcomments/{id}
請求方式:get
請求格式:無
是否依賴登陸:是
請求參數
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| id | 課程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 101301 | 課程id不存在 |
2.14評論
路徑:/course/comments
請求方式:post
請求格式:json
是否依賴登陸:是
請求參數
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| id | 課程id | 是 | int |
| content | 評論內容 | 是 | str |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 101401 | 課程id不存在 |
| 101402 | 評論內容不能為空 |
| 101403 | 評論失敗 |
| 101404 | 自己不能評論自己的課程 |
2.15 加入課程
路徑:/course/add/{id}
請求方式:post
請求格式:json
是否依賴登陸:是
請求參數
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| id | 課程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 101501 | 課程id不存在 |
| 101502 | 課程不能重復加入 |
| 101503 | 自己不能加入自己的課程 |
2.16 退出課程
路徑:/course/quit/{id}
請求方式:post
請求格式:json
是否依賴登陸:是
請求參數
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| id | 課程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 101601 | 課程id不存在 |
| 101602 | 課程不在自己列表 |
2.17 課程列表
路徑:/course/list
請求方式:get
請求格式:json
是否依賴登陸:是
請求參數:無
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
2.18 課程列表(當前用戶的課程)
路徑:/course/courselist
請求方式:get
請求格式:json
是否依賴登陸:是
請求參數:
無
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
2.19 推薦課程列表
路徑:/course/recommend
請求方式:get
請求格式:json
是否依賴登陸:是
請求參數:無
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
2.20 課程點贊
路徑:/course/like/{id}
請求方式:get
請求格式:json
是否依賴登陸:是
請求參數
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| id | 課程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
2.21 課程上架
路徑:/course/onshelf/{id}
請求方式:get
請求格式:json
是否依賴登陸:是
請求參數
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| id | 課程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 102101 | 課程不存在 |
| 102102 | 課程已經上架 |
| 102103 | 自己只能上架自己的課程 |
| 102104 | 權限不足 |
2.22 課程下架
路徑:/course/offshelf/{id}
請求方式:get
請求格式:json
是否依賴登陸:是
請求參數
| 參數 | 含義 | 是否必須 | 類型 |
|---|---|---|---|
| id | 課程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
狀態碼說明
| 狀態碼 | 含義 |
|---|---|
| 200 | 成功 |
| 102201 | 課程不存在 |
| 102202 | 課程已經下架 |
| 102203 | 自己只能下架自己的課程 |
| 102204 | 權限不足 |
對應的接口第一版本已經梳理完畢,下次,我們分享需要的數據庫的設計。
后記
文章首發在公眾號,歡迎關注。

