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
是否依赖登陆:是
【FastAPI(六十三)实战开发《在线课程学习系统》梳理系统需要接口】请求参数:
参数 含义 是否必须 类型
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 权限不足
对应的接口第一版本已经梳理完毕,下次,我们分享需要的数据库的设计。
后记

文章首发在公众号,欢迎关注。
FastAPI(六十三)实战开发《在线课程学习系统》梳理系统需要接口
文章图片




    推荐阅读