针对上一篇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 权限不足

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

后记

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

 

FastAPI(六十三)实战开发《在线课程学习系统》梳理系统需要接口的更多相关文章

  1. FastAPI(六十二)实战开发《在线课程学习系统》需求分析

    前言 基础的分享我们已经分享了六十篇,那么我们这次分享开始将用一系列的文章分享实战课程.我们分享的系统是在线学习系统.我们会分成不同的模块进行分享.我们的目的是带着大家去用fastapi去实战一次,开 ...

  2. FastAPI(六十九)实战开发《在线课程学习系统》接口开发--修改密码

    之前我们分享了FastAPI(六十八)实战开发<在线课程学习系统>接口开发--用户 个人信息接口开发.这次我们去分享实战开发<在线课程学习系统>接口开发--修改密码 我们梳理一 ...

  3. FastAPI(六十八)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发

    在之前的文章:FastAPI(六十七)实战开发<在线课程学习系统>接口开发--用户登陆接口开发,今天实战:用户 个人信息接口开发. 在开发个人信息接口的时候,我们要注意了,因为我们不一样的 ...

  4. FastAPI(六十七)实战开发《在线课程学习系统》接口开发--用户登陆接口开发

    接上一篇文章FastAPI(六十六)实战开发<在线课程学习系统>接口开发--用户注册接口开发.这次我们分享实际开发--用户登陆接口开发. 我们先来梳理下逻辑 1.查询用户是否存在2.校验密 ...

  5. FastAPI(七十三)实战开发《在线课程学习系统》接口开发-- 回复留言

    之前文章分享FastAPI(七十二)实战开发<在线课程学习系统>接口开发-- 留言列表开发,这次我们分享如何回复留言 按照惯例,我们还是去分析这里面的逻辑. 1.判断用户是否登录 2.用户 ...

  6. FastAPI(七十四)实战开发《在线课程学习系统》接口开发-- 删除留言

    之前文章FastAPI(七十三)实战开发<在线课程学习系统>接口开发-- 回复留言,那么我们这次分享删除留言接口的开发 可以对留言进行删除,这里的删除,我们使用的是逻辑的删除,不是物理删除 ...

  7. FastAPI(七十)实战开发《在线课程学习系统》接口开发--留言功能开发

    在之前的文章:FastAPI(六十九)实战开发<在线课程学习系统>接口开发--修改密码,这次分享留言功能开发 我们能梳理下对应的逻辑 1.校验用户是否登录 2.校验留言的用户是否存在 3. ...

  8. FastAPI(七十二)实战开发《在线课程学习系统》接口开发-- 留言列表开发

    之前我们分享了FastAPI(七十一)实战开发<在线课程学习系统>接口开发-- 查看留言,这次我们分享留言列表开发. 列表获取,也需要登录,根据登录用户来获取对应的留言.逻辑梳理如下. 1 ...

  9. FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言

    之前FastAPI(七十)实战开发<在线课程学习系统>接口开发--留言功能开发分享了留言开发,这次我们分享查看留言 梳理这里的逻辑,这个接口要依赖登录. 1.判断用户是否登录 2.判断对应 ...

随机推荐

  1. node二进制安装

    你可能因为重装系统node的npm不管用, 但是node管用, 我不知道为什么, 但是 二进制安装就好了 管他那么多 下面这些网址你就可以了 https://blog.csdn.net/wocaoni ...

  2. Rigidbody钢体移动时抖动问题

    Rigidbody移动时抖动问题 撞墙抖动 Unity中物体移动有非常多的方式: 比如: transform.position += dir*speed*Time.deltaTime; transfo ...

  3. Linux系统安装MySql5.7并通过sql脚本导入数据

    为了下载到的MySQL版本和目标系统相互兼容,在开启之前,最好了解目标系统的相关信息. 查询系统版本: cat /etc/issue 查看系统位数 getconf LONG_BIT 选择MySQL 根 ...

  4. 2021.5.22 vj补题

    A - Marks CodeForces - 152A 题意:给出一个学生人数n,每个学生的m个学科成绩(成绩从1到9)没有空格排列给出.在每科中都有成绩最好的人或者并列,求出最好成绩的人数 思路:求 ...

  5. PAT (Basic Level) Practice (中文)1061 判断题 (15分)

    1061 判断题 (15分) 判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分. 输入格式: 输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数 ...

  6. 错误 Unresolved reference 'AF_INET' 解决办法

    错误代码如下: import socketserer_socket = socket.socket(AF_INET, SOCK_DGAM) 错误信息: 原因分析: 1.AF_INET,SOCK_DGA ...

  7. 什么,你还使用 webpack?别人都在用 vite 搭建项目了

    一.vite 到底是干嘛的? vite 实际上就是一个面向现代浏览器,基于 ES module 实现了一个更轻快的项目构建打包工具. vite 是法语中轻快的意思. vite 的特点: 1.轻快的冷服 ...

  8. 51.N皇后问题

    n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案. 每一种解法包含一个明确的 n 皇后问题的棋 ...

  9. Spring Cloud Gateway 网关限流

    Spring Cloud Gateway 限流 一.背景 二.实现功能 三.网关层限流 1.使用默认的redis来限流 1.引入jar包 2.编写配置文件 3.网关正常响应 4.网关限流响应 2.自定 ...

  10. NOIP模拟22

    T1d 一道垃圾贪心,写个堆优化或者桶就行 1 #include<bits/stdc++.h> 2 #define int long long 3 using namespace std; ...