• 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 权限不足

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

    后记

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

     

            

  • 相关阅读:
    8.8总结
    8.4总结
    8.3总结
    题目分享H 二代目
    题目分享G 二代目
    题目分享E 二代目
    题目分享F 二代目
    题目分享D 二代目
    题目分享C 二代目
    题目分享Y
  • 原文地址:https://www.cnblogs.com/leiziv5/p/15583704.html
Copyright © 2020-2023  润新知