FastAPI(六十三)实战开发《在线课程学习系统》梳理系统需要接口

针对上一篇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 权限不足

第一个版本的相应界面已经梳理出来,下次我们将分享我们所需要的数据库的设计。

[En]

The first version of the corresponding interface has been combed out, and next time, we will share the design of the database we need.

后记

第一个帖子是在官方账号上。欢迎关注我们。

[En]

The first post is on the official account. Welcome to follow us.

FastAPI(六十三)实战开发《在线课程学习系统》梳理系统需要接口

Original: https://www.cnblogs.com/leiziv5/p/15583704.html
Author: 北漂的雷子
Title: FastAPI(六十三)实战开发《在线课程学习系统》梳理系统需要接口

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/510710/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球