Vue & SpringBoot 从零实现博客系统 (三)

本文系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

后记

关于接口如何实现,则是在第五部分,后端编码中详细分享

发布了100 篇原创文章 · 获赞 142 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/coder_what/article/details/101222173