本文系Vue & SpringBoot从零实现博客系统第三部分 接口设计
接口设计
- 采用RESTful风格的接口,做前后端分离的项目
- 通过接口,前端给后端发送请求,后端收到请求之后给前端返回响应,我们使用json作为中间传递的数据,关于后台json数据的实现可以看这篇文章
- 我们可以使用postMan(桌面版)作为接口的测试工具
- 接口的文档编写可以使用swagger,但是往大了说,因为产品,UI,前端,后端,测试,运维都是我一个人,所以我就没有用swagger,直接把接口信息备注到了postman上面
根目录
- 因为涉及到了权限问题,那么就需要在URL中去判断request的权限,所以需要给请求的根URI中加入
/admin
或者/any
用来使后端判断出request的权限 - 我们只需要在后端设置一个拦截器就可以判断出权限,当然这属于编码实现的部分,后续章节有提到
开放接口 /any
- 对于开放接口,我主要分为了三部分,一个是文章相关,一个是分类相关,一个是用户相关
/article
文章信息和文章内容是两个表,文章信息用于首页的展示(上一篇博客有提到)
-
按热度列出文章信息
用于首页文章信息的展示
GET 127.0.0.1:8080/any/article/byTra?page=1&size=2
-
按时间列出文章信息
用于首页文章信息的展示
GET 127.0.0.1:8080/any/article/byTime?page=1&size=6
-
通过分类列出文章信息
用于从分类列表获得文章信息
GET 127.0.0.1:8080/any/article/3?page=1&size=1
-
按时间列出文章数目
用于展示时间线上的文章数目
GET 127.0.0.1:8080/any/article/listNumOfTime
-
通过文章信息id列出文章内容
GET 127.0.0.1:8080/any/article/articleContent?id=11
- 用于从首页跳转到文章详细信息页面
- 用于管理员修改信息时的调用
-
通过文章信息id获得文章评论
GET 127.0.0.1:8080/any/article/articleComment?id=11
用于进入文章相信信息页面获取文章评论
-
通过文章信息id列出文章分类
GET 127.0.0.1:8080/any/article/articleCategory?id=11
用于进入文章相信信息页面获取文章分类
-
增加文章评论
post 127.0.0.1:8080/any/article/postComment/21
{ "content": "你也叫大锤?", "parentId": 1, //parentId为自动获取 "name": "大锤二号", "contact": "123" }
用于用户为文章评论
-
增加文章问用户的关系
post 127.0.0.1:8080/any/article/postLover?aid=29
用于用户为文章点赞,aid为文章id,用户ip由服务器获取
/categoryInfo
-
列出文章分类(以树的形式)
用于文章的分类模块
GET 127.0.0.1:8080/any/categoryInfo/list
-
列出文章分类(平行结构)
用于文章详细列表
GET 127.0.0.1:8080/any/categoryInfo/listPa
-
通过文章id列出分类的名称
用于文章详细列表
GET 127.0.0.1:8080/any/categoryInfo/categoryByArtId?id=19
/user
-
得到已登录的用户数量
用于网页底部用户数量的显示
GET 127.0.0.1:8080/any/user/getUserLogNum
-
得到用户浏览次数
用户网页底部浏览次数的显示
GET 127.0.0.1:8080/any/user/getUserNum
-
管理员登录
用于管理员的登录
POST 127.0.0.1:8080/any/user/login?username=Stalern&password=123456
-
注册用户
当有新ip登录系统时,便会启动该接口
POST 127.0.0.1:8080/any/user/postUser
-
情况一,用户未评论(即没有用户名和联系方式)
{ // 空值 }
-
情况二,用户评论(此时在没有用户名的基础上更新用户名和联系方式)
{ "name":"那真是酷啊", "connect":"888303-333" }
-
管理员接口 /admin
- 主要分为三种,分类,文章,和用户
/article
-
增加文章(包括其信息,内容,分类),当为一个子分类增加文章时,父分类的文章个数也会加一
POST 127.0.0.1:8080/admin/article/postArticle
{ "articleInfo": { "title": "第6次", "summary": "第6次" }, "articleContent": { "content": "第6次" }, "articleCategory": { "categoryId": 1 } }
-
设置文章评论不可见或者不可见,参数为问章id以及是否可见
PUT 127.0.0.1:8080/admin/setCommentEff?id=5&flag=false
-
更新文章(包括其信息,内容,分类)
PUT 127.0.0.1:8080/admin/article/updateArticle
{ "articleInfo": {}, "articleContent": { "articleId":13, "content": "第7次" }, "articleCategory": {} }
-
删除文章,包括文章信息,文章内容,同时文章分类对应的文章数要-1
DELETE 127.0.0.1:8080/admin/article/delete?id=1
-
删除文章对应评论
DELETE 127.0.0.1:8080/admin/article/comment?id=5
/categoryInfo
-
更新分类
PUT 127.0.0.1:8080/admin/categoryInfo/update
{ "id": 36, "name": "ddD", "parentId": 1 }
-
删除分类(因为分类是树结构,所以当删除一个父级分类,其子级也会被删除,同时该分类下的文章会移动到父级分类上)
PUT 127.0.0.1:8080/admin/categoryInfo/36
-
增加分类
PUT 127.0.0.1:8080/admin/categoryInfo/post
{ "name": "DSA", "parentId": 2 }
/user
-
按时间倒序列出文章用户
用于管理员查看用户
GET 127.0.0.1:8080/admin/user/listUser?page=1&size=6
后记
关于接口如何实现,则是在第五部分,后端编码中详细分享