zoukankan      html  css  js  c++  java
  • 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 权限不足

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

    后记

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

     

            

  • 相关阅读:
    Representation Data in OpenCascade BRep
    Render OpenCascade Geometry Surfaces in OpenSceneGraph
    Render OpenCascade Geometry Curves in OpenSceneGraph
    OpenCascade Shape Representation in OpenSceneGraph
    Geometry Surface of OpenCascade BRep
    Geometry Curve of OpenCascade BRep
    Tyvj2017清北冬令营入学测试
    Spfa算法模板
    洛谷1016 旅行家的预算
    洛谷1290 欧几里得的游戏
  • 原文地址:https://www.cnblogs.com/leiziv5/p/15583704.html
Copyright © 2011-2022 走看看