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 | 注册成功 |
注册失败 | |
身份和对应号不匹配 | |
年纪大小不符合 | |
用户名重复 | |
密码加密失败 | |
用户名长度不符合 |
2.2登陆接口
路径:/user/login
请求方式:post
请求格式:json
是否依赖登陆:否
请求参数
字段 | 含义 | 是否必须 | 类型 |
---|---|---|---|
username | 用户名 | 是 | str |
password | 密码 | 是 | str |
返回例子
{
"code":200,
"data":{
"token":""
},
"message":"成功"
}
返回状态码说明
代码 | 含义 |
---|---|
200 | 成功 |
登陆失败 | |
重复登陆 | |
产生token失败 | |
输入密码错误次数过多,账号暂时锁定,请30min再来登录 | |
用户不存在 | |
密码错误 |
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 | 成功 |
原密码校验失败 | |
密码保存失败 | |
新密码长度不匹配 | |
新旧密码不能一样 |
2.5 留言
路径:/user/addmessage
请求方式:post
请求格式:json
是否依赖登陆:是
请求参数:
参数 | 含义 | 是否必须 | 类型 |
---|---|---|---|
id | 用户id | 是 | int |
message | 内容 | 是 | str |
返回格式:json
{
"code":200,
"data":{
},
"message":"成功"
}
返回状态码说明
状态码 | 含义 |
---|---|
200 | 成功 |
自己不能给自己留言 | |
留言长度在5-500个字符长度 | |
留言用户不存在 |
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 | 成功 |
回复留言失败 | |
回复留言内容不能为空 | |
回复内容应该在5-500字 | |
回复留言id不存在 |
2.9删除留言
路径:/user/deletemessage/{id}
请求方式:get
请求格式:json
是否依赖登陆:是
请求参数:
参数 | 含义 | 是否必须 | 类型 |
---|---|---|---|
id | 留言的id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
返回状态码说明
状态码 | 含义 |
---|---|
200 | 成功 |
删除留言不存在 | |
权限不足 |
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 | 成功 |
课程名称不能重复 | |
课程创建失败 |
2.11课程详情
路径:/course/detail/{id}
请求方式:get
请求格式:json
是否依赖登陆:是
请求参数
参数 | 含义 | 是否必须 | 类型 |
---|---|---|---|
id | 课程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
状态码说明
状态码 | 含义 |
---|---|
200 | 成功 |
课程不存在 |
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 | 成功 |
课程id不存在 | |
权限不足 | |
课程名称不能重复 |
2.13 查看评论
路径:/course/viewcomments/{id}
请求方式:get
请求格式:无
是否依赖登陆:是
请求参数
参数 | 含义 | 是否必须 | 类型 |
---|---|---|---|
id | 课程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
状态码说明
状态码 | 含义 |
---|---|
200 | 成功 |
课程id不存在 |
2.14评论
路径:/course/comments
请求方式:post
请求格式:json
是否依赖登陆:是
请求参数
参数 | 含义 | 是否必须 | 类型 |
---|---|---|---|
id | 课程id | 是 | int |
content | 评论内容 | 是 | str |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
状态码说明
状态码 | 含义 |
---|---|
200 | 成功 |
课程id不存在 | |
评论内容不能为空 | |
评论失败 | |
自己不能评论自己的课程 |
2.15 加入课程
路径:/course/add/{id}
请求方式:post
请求格式:json
是否依赖登陆:是
请求参数
参数 | 含义 | 是否必须 | 类型 |
---|---|---|---|
id | 课程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
状态码说明
状态码 | 含义 |
---|---|
200 | 成功 |
课程id不存在 | |
课程不能重复加入 | |
自己不能加入自己的课程 |
2.16 退出课程
路径:/course/quit/{id}
请求方式:post
请求格式:json
是否依赖登陆:是
请求参数
参数 | 含义 | 是否必须 | 类型 |
---|---|---|---|
id | 课程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
状态码说明
状态码 | 含义 |
---|---|
200 | 成功 |
课程id不存在 | |
课程不在自己列表 |
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 | 成功 |
课程不存在 | |
课程已经上架 | |
自己只能上架自己的课程 | |
权限不足 |
2.22 课程下架
路径:/course/offshelf/{id}
请求方式:get
请求格式:json
是否依赖登陆:是
请求参数
参数 | 含义 | 是否必须 | 类型 |
---|---|---|---|
id | 课程id | 是 | int |
返回格式:json
{
"code":200,
"data":"ok",
"message":"成功"
}
状态码说明
状态码 | 含义 |
---|---|
200 | 成功 |
课程不存在 | |
课程已经下架 | |
自己只能下架自己的课程 | |
权限不足 |
对应的接口第一版本已经梳理完毕,下次,我们分享需要的数据库的设计。
后记
文章首发在公众号,欢迎关注。
分享文章:FastAPI(六十三)实战开发《在线课程学习系统》梳理系统需要接口
当前链接:http://scyanting.com/article/dsojsoh.html