资讯专栏INFORMATION COLUMN

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

番茄西红柿 / 3194人阅读

摘要:针对上一篇六十二实战开发在线课程学习系统需求分析需求的功能,我们对需要的接口进行梳理,大概的规划出来现有的接口,作为我们第一版的接口的设计出版,然后我们根据设计的接口。后记文章首发在公众号,欢迎关注。

  针对上一篇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,小于65int

 

接口返回: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用户idint
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留言的idint
message内容str

返回格式:json

{
 "code":200,
 "data":{},
 "message":"成功"
}

返回状态码说明

状态码含义
200成功
100801回复留言失败
100802回复留言内容不能为空
100803回复内容应该在5-500字
100804回复留言id不存在
2.9删除留言

路径:/user/deletemessage/{id}

请求方式:get

请求格式:json

是否依赖登陆:是

请求参数:

参数含义是否必须类型
id留言的idint

返回格式:json

{
 "code":200,
 "data":"ok",
 "message":"成功"
}

返回状态码说明

状态码含义
200成功
100901删除留言不存在
100902权限不足
2.10创建课程

路径:/course/create

请求方式:post

请求格式:json

是否依赖登陆:是

请求参数:

参数含义是否必须类型
name课程名称(长度2-50)str
icon课程的iconstr
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课程idint

返回格式:json

{
 "code":200,
 "data":"ok",
 "message":"成功"
}

状态码说明

状态码含义
200成功
101101课程不存在
2.12 课程编辑

路径:/course/edit

请求方式:put

请求格式:json

是否依赖登陆:是

请求参数

参数含义是否必须类型
name课程名称(长度2-50)str
id课程idint
icon课程iconstr
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课程idint

返回格式:json

{
 "code":200,
 "data":"ok",
 "message":"成功"
}

状态码说明

状态码含义
200成功
101301课程id不存在
2.14评论

路径:/course/comments

请求方式:post

请求格式:json

是否依赖登陆:是

请求参数

参数含义是否必须类型
id课程idint
content评论内容str

返回格式:json

{
 "code":200,
 "data":"ok",
 "message":"成功"
}

状态码说明

状态码含义
200成功
101401课程id不存在
101402评论内容不能为空
101403评论失败
101404自己不能评论自己的课程
2.15 加入课程

路径:/course/add/{id}

请求方式:post

请求格式:json

是否依赖登陆:是

请求参数

参数含义是否必须类型
id课程idint

返回格式:json

{
 "code":200,
 "data":"ok",
 "message":"成功"
}

状态码说明

状态码含义
200成功
101501课程id不存在
101502课程不能重复加入
101503自己不能加入自己的课程
2.16 退出课程

路径:/course/quit/{id}

请求方式:post

请求格式:json

是否依赖登陆:是

请求参数

参数含义是否必须类型
id课程idint

返回格式: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课程idint

返回格式:json

{
 "code":200,
 "data":"ok",
 "message":"成功"
}
2.21 课程上架

路径:/course/onshelf/{id}

请求方式:get

请求格式:json

是否依赖登陆:是

请求参数

参数含义是否必须类型
id课程idint

返回格式:json

{
 "code":200,
 "data":"ok",
 "message":"成功"
}

状态码说明

状态码含义
200成功
102101课程不存在
102102课程已经上架
102103自己只能上架自己的课程
102104权限不足
2.22 课程下架

路径:/course/offshelf/{id}

请求方式:get

请求格式:json

是否依赖登陆:是

请求参数

参数含义是否必须类型
id课程idint

返回格式:json

{
 "code":200,
 "data":"ok",
 "message":"成功"
}

状态码说明

状态码含义
200成功
102201课程不存在
102202课程已经下架
102203自己只能下架自己的课程
102204权限不足

        对应的接口第一版本已经梳理完毕,下次,我们分享需要的数据库的设计。

后记

 

文章首发在公众号,欢迎关注。

 

 

        

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/124530.html

相关文章

  • 从零开始:微信小程序新手入门宝典《一》

    摘要:为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习一微信小程序的特点张小龙张小龙全面阐述小程序,推荐通读此文小程序是一种不需要下载安装即可使用的应用,它出现了触手可及的梦想,用户扫一扫或者搜一下即 为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习; 一:微信小程序的特点 张小龙:张小龙全面阐述小程...

    whataa 评论0 收藏0
  • 从零开始:微信小程序新手入门宝典《一》

    摘要:为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习一微信小程序的特点张小龙张小龙全面阐述小程序,推荐通读此文小程序是一种不需要下载安装即可使用的应用,它出现了触手可及的梦想,用户扫一扫或者搜一下即 为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习; 一:微信小程序的特点 张小龙:张小龙全面阐述小程...

    mdluo 评论0 收藏0
  • 从零开始:微信小程序新手入门宝典《一》

    摘要:为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习一微信小程序的特点张小龙张小龙全面阐述小程序,推荐通读此文小程序是一种不需要下载安装即可使用的应用,它出现了触手可及的梦想,用户扫一扫或者搜一下即 为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习; 一:微信小程序的特点 张小龙:张小龙全面阐述小程...

    LdhAndroid 评论0 收藏0
  • Python运用fastapi完成上传图片

      FastAPI是个现代化的,迅速(性能卓越)pythonweb架构。本文运用fastapi完成上传图片作用,文章中的实例编码解读详尽,所需要的可以了解一下  应用File完成文件传送  应用Form表格上传图片,fastapi应用File获得上传文档。  特定了参数类型是bytes:file:bytes=File(),这时会把文件所有载入到内存条,较为适合静态资源。  应用File要提前组装p...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<