一个博客网站mock接口示例





登录页




登录接口

  • 请求URL: /auth/login

  • 请求方式: POST

  • 描述: 登录接口

  • mock.js 配置:

    {
      "code": 20000,
      "message": "成功",
      "data": {
        "access_token": "@word(30)",
        "token_type": "bearer",
        "refresh_token": "fbdgsbscpakavfpjurbeqegmrrhghv",
        "expires_in": "@natural", // access_token 有效时长
        "scope": "all", // 权限范围
        "userInfo": {
          "uid": "1",
          "username": "@name",
          "mobile": /1\d{10}/,
          "email": "@email",
          "nickName": "@cname",
          "imageUrl": "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"
        },
        "jti": "@word(20)" // access_token 唯一标签
      }
    }
    

注册页




查询用户名是否已被注册

  • 请求URL:/system/api/user/username/{username}

  • 请求方式: GET

  • 描述:查询用户名是否已被注册

  • mock.js 配置:

    {
      "code": 20000,
      "message": "查询成功",
      "data": false // true 已被注册,false 未被注册
    }
    




注册用户接口

  • 请求URL: /system/api/user/register

  • 请求方式: POST

  • 描述:注册接口

  • mock.js 配置:

    {
      "code": 20000,
      "message": "注册成功"
    }
    




已存在用户名测试

输入用户名为“test”,提交注册,会提示 用户名已被注册,请重新输入用户名

  • 请求URL:/system/api/user/username/test

  • 请求方式: GET

  • 描述:查询用户名是否已被注册

  • mock.js 配置:

    {
      "code": 20000,
      "message": "查询成功",
      "data": false // true 已被注册,false 未被注册
    }
    



注销页

注销

  • 请求URL:/auth/logout

  • 请求方式: GET

  • 描述:退出系统

  • mock.js 配置:

    {
      "code": 20000,
      "message": "退出成功"
    }
    

token刷新

  • 请求URL:/auth/user/refreshToken

  • 请求方式: GET

  • 描述:刷新令牌接口

  • mock.js 配置:刷新令牌获取的身份信息和 登录时获取的是一样的。

    {
      "code": 20000,
      "message": "成功",
      "data": {
        "access_token": "@word(30)",
        "token_type": "bearer",
        "refresh_token": "fbdgsbscpakavfpjurbeqegmrrhghv",
        "expires_in": "@natural", // access_token 有效时长
        "scope": "all", // 权限范围
        "userInfo": {
          "uid": "@natural",
          "username": "@name",
          "mobile": /1\d{10}/,
          "email": "@email",
          "nickName": "@cname",
          "imageUrl": "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"
        },
        "jti": "@word(20)" // access_token 唯一标签
      }
    }
    

博客首页




查询技术频道(类别)列表接口

  • 请求URL:/article/api/category/list

  • 请求方式: GET

  • 描述:查询技术频道(类别)列表接口

  • mock.js 配置:随机产生8条分类数据

    {
      "code": 20000,
      "message": "查询成功",
      "data|8": [{ // 产生8条数据
        "id|+1": 10, //初始值10开始,每条+1, 
        "name": "@cname", // 随机一个名字
      }]
    }
    



获取指定位置的广告信息接口

  • 请求URL:/article/api/advert/show/{position}

  • 请求方式: GET

  • 描述:获取指定位置的广告信息

  • mock.js 配置:随机产生3条数据

{
  "code": 20000,
  "message": "查询成功",
  "data|3": [{ // 产生8条数据
    "id|+1": 10, //初始值10开始,每条+1, 
    "title": "@ctitle", // 随机一个标题
    "imageUrl": "https://img.alicdn.com/imgextra/i1/3603079088/O1CN01jYfKNE2H0Lz1YJoFC_!!3603079088.jpg",
    "advertUrl": "http://www.mengxuegu.com",
    "advertTarget": "_blank",
  }]
}


获取文章列表接口

  • 请求URL: article/api/article/list

  • 请求方式: POST

  • 描述:获取文章列表接口

  • mock.js 配置:分页查询,每次查询20条

    {
      "code": 20000,
      "message": "查询成功",
      "data": {
        "total": "@integer(100, 200)", // 总记录数
        "records|20": [{ //生成20条数据
          "id|+1": 10, //初始值10开始,每条+1
          "userId|+1": 1, // 发布者id
          "nickName": "@cname", // 发布者昵称
          "title": "@csentence", // 标题
          "summary": "@csentence(50, 100)",
          "imageUrl|1": [null, "https://img.alicdn.com/bao/uploaded/i2/3603079088/O1CN01rGCkfb2H0M1O7Lj45_!!0-item_pic.jpg"],
          "viewCount": "@integer(0, 100000)", // 浏览次数
          "thumhup": "@integer(0, 100000)", // 点赞数
          "updateDate": "@datetime"
        }]
      }
    }
    




文章详情页






文章内容显示

  • 请求URL: /article/api/article/{id}
  • 请求方式: GET
  • 描述:查询文章详情数据接口
  • mock.js 配置:包含文章所属标签集合 labelList
{
  "code": 20000,
  "message": "成功",
  "data": {
    "id": "10",
    "userId": "1",
    "nickName": "@cname",
    "title": "@csentence", // 标题
    "summary": "@csentence(50, 100)",
    "viewCount": "@integer(0,100)",
    "thumhup": "@integer(0,10)",
    "createDate": "@datetime",
    "updateDate": "@datetime", // 详情显示的时间
    "ispublic|1": [0, 1], // 0: 不公开 1:公开
    "labelIds|1-5": ['@integer(10, 24)'], //随机产生1到5个元素的数字数组,数字取值10到24间
    "labelList|3": [{ // 所属标签集合
      "id|+1": 10,
      "name": "@word" // 标签名
    }],
    "imageUrl|1": [null, "https://img.alicdn.com/bao/uploaded/i2/3603079088/O1CN01rGCkfb2H0M1O7Lj45_!!0-item_pic.jpg"],
    "mdContent": '# vue-element-admin 概述\n\n[vue-element-admin](https://panjiachen.github.io/vue-element-admin) 是一个后台前端解决方案,它基于 [vue](https://github.com/vuejs/vue) 和 [element-ui](https://github.com/ElemeFE/element)实现。它使用了最新的前端技术栈,内置了 i18n 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。\n\n[vue-element-admin](https://panjiachen.github.io/vue-element-admin) 定位是后台集成方案,不太适合当基础模板来进行二次开发,因为本项目集成了很多你可能用不到的功能,会造成不少的代码冗余。\n\n官方还提供了一套基础模板 [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template) ,我们基于它进行二次开发,想要什么功能或者组件就去 `vue-element-admin` 那里复制过来。\n\n\n\n## 参考:\n\n- 官方文档 :https://panjiachen.gitee.io/vue-element-admin-site/zh/\n\n- [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) 脚手架: \n\n  在线预览:https://panjiachen.gitee.io/vue-element-admin\n\n  `gitee`  :https://gitee.com/mirrors/vue-element-admin\n\n  `github` :https://github.com/PanJiaChen/vue-element-admin\n\n- [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template) 脚手架: \n\n  在线预览:https://panjiachen.gitee.io/vue-admin-template\n\n  `github` 源码:https://github.com/PanJiaChen/vue-admin-template\n\n',
    "htmlContent": '<h1><a id=\"vueelementadmin__0\"></a>vue-element-admin 概述</h1>\n<p><a href=\"https://panjiachen.github.io/vue-element-admin\" target=\"_blank\">vue-element-admin</a> 是一个后台前端解决方案,它基于 <a href=\"https://github.com/vuejs/vue\" target=\"_blank\">vue</a> 和 <a href=\"https://github.com/ElemeFE/element\" target=\"_blank\">element-ui</a>实现。它使用了最新的前端技术栈,内置了 i18n 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。</p>\n<p><a href=\"https://panjiachen.github.io/vue-element-admin\" target=\"_blank\">vue-element-admin</a> 定位是后台集成方案,不太适合当基础模板来进行二次开发,因为本项目集成了很多你可能用不到的功能,会造成不少的代码冗余。</p>\n<p>官方还提供了一套基础模板 <a href=\"https://github.com/PanJiaChen/vue-admin-template\" target=\"_blank\">vue-admin-template</a> ,我们基于它进行二次开发,想要什么功能或者组件就去 <code>vue-element-admin</code> 那里复制过来。</p>\n<h2>参考:</h2>\n<ul>\n<li>\n<p>官方文档 :https://panjiachen.gitee.io/vue-element-admin-site/zh/</p>\n</li>\n<li>\n<p><a href=\"https://github.com/PanJiaChen/vue-element-admin\" target=\"_blank\">vue-element-admin</a> 脚手架:</p>\n<p>在线预览:https://panjiachen.gitee.io/vue-element-admin</p>\n<p><code>gitee</code>  :https://gitee.com/mirrors/vue-element-admin</p>\n<p><code>github</code> :https://github.com/PanJiaChen/vue-element-admin</p>\n</li>\n<li>\n<p><a href=\"https://github.com/PanJiaChen/vue-admin-template\" target=\"_blank\">vue-admin-template</a> 脚手架:</p>\n<p>在线预览:https://panjiachen.gitee.io/vue-admin-template</p>\n<p><code>github</code> 源码:https://github.com/PanJiaChen/vue-admin-template</p>\n</li>\n</ul>\n<p>参考官网配置:<br /><a href="https://cli.vuejs.org/zh/guide/html-and-static-assets.html#public-%E6%96%87%E4%BB%B6%E5%A4%B9" target="_blank">https://cli.vuejs.org/zh/guid…</a></p><p>需要设置<code>BASE_URL</code></p><pre><div class="hljs"><code class="lang-js">data () {  <span class="hljs-keyword">return</span> {    <span class="hljs-attr">publicPath</span>: process.env.BASE_URL  }}</code></div></pre><p>然后</p><pre><div class="hljs"><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">:src</span>=<span class="hljs-string">"`${publicPath}my-image.png`"</span>&gt;</span></code></div></pre><p><mark>特别强调</mark></p>'
  }
}



更新浏览量+1数据接口

  • 请求URL: /article/api/article/viewCount/{id}

  • 请求方式: PUT

  • 描述:更新文章浏览数量接口

  • mock.js 配置

    {
      "code": 20000,
      "message": "成功"
    }
    




文章点赞接口

  • 请求URL: /article/article/thumb/{articleId}/{count}

  • 请求方式: PUT

  • 描述:更新点赞数量接口,登录后才可以点赞

  • mock.js 配置

    {
      "code": 20000,
      "message": "成功"
    }
    




通过文章ID查询所有评论数据接口

  • 请求URL:/article/api/comment/list/{articleId}

  • 请求方式: GET

  • 描述:通过文章ID查询评论接口

  • mock.js 配置:包含子评论集合 children

    {
      "code": 20000,
      "message": "成功",
      "data": [{
          "id": "1",
          "parentId": "-1",
          "userId": "1",
          "nickName": "@cname",
          "userImage": "",
          "articleId": "10",
          "content": "很好",
          "createDate": "2024-03-10T04:54:23.000+0000",
          "children": []
        },
        {
          "id": "2",
          "parentId": "-1",
          "userId": "2",
          "nickName": "@cname",
          "userImage": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
          "articleId": "10",
          "content": "@csentence",
          "createDate": "@datetime",
          "children": [{
              "id": "3",
              "parentId": "2",
              "userId": "3",
              "nickName": "@cname",
              "userImage": null,
              "articleId": "10",
              "content": "@csentence",
              "createDate": "@datetime",
              "children": [{
                "id": "5",
                "parentId": "3",
                "userId": "4",
                "nickName": "@cname",
                "userImage": null,
                "articleId": "10",
                "content": "@csentence",
                "createDate": "@datetime",
                "children": []
              }]
            },
            {
              "id": "4",
              "parentId": "2",
              "userId": "4",
              "nickName": "@cname",
              "userImage": null,
              "articleId": "10",
              "content": "@csentence",
              "createDate": "@datetime",
              "children": []
            }
          ]
        }
      ]
    }
    




提交评论信息

不能回复自己的,只能回复别人的。只能删除自己的(当前登录用户)。

  • 请求URL:/article/comment

  • 请求方式: POST

  • 描述:新增文章评论接口

  • mock.js 配置:

    {
      "code": 20000,
      'message': "新增成功"
    }
    




删除评论信息

不能回复自己的,只能回复别人的。只能删除自己的(当前登录用户)。

  • 请求URL: /article/comment/{id}

  • 请求方式:DELETE

  • 描述:删除文章评论接口

  • mock.js 配置:

    {
      "code": 20000,
      'message': "删除成功"
    }
    

新增与修改文章页






获取分类和标签

  • 请求URL: /article/api/category/label/list

  • 请求方式: GET

  • 描述:获取所有正常状态的分类和标签

  • mock.js 配置:

    {
      "code": 20000,
      "message": "查询成功",
      "data|5": [{ // 5个分类
        "id|+1": 1, // 分类id, 初始值1开始,每条+1
        "name": "@cname", // 分类名称
        "labelList|3": [{ // 分类下的有3个标签
          "id|+1": 10, // 标签id
          "name": '@word' //标签名
        }]
      }]
    }
    




上传图片接口

上传成功和关闭窗口后,将前面上传图片的删除

  • 请求URL: /article/file/upload

  • 请求方式: POST

  • 描述:上传图片接口

  • mock.js 配置: data直接封装上传后的图片ur

    {
      "code": 20000,
      "message": "上传成功",
      "data": "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg"
    }
    




删除图片接口

  • 请求URL:/article/file/delete

  • 请求方式: DELETE

  • 描述:删除图片接口

  • mock.js 配置:

    {
      "code": 20000,
      'message': "删除成功"
    }
    

提交表单新增文章

  • 请求URL:/article/article

  • 请求方式:POST

  • 描述:新增文章

  • mock.js 配置:

    {
      "code": 20000,
      "message": "新增成功",
      "data":"10" // 新增的文章id
    }
    




提交修改文章数据

  • 请求URL:/article/article

  • 请求方式: PUT

  • 描述:文章数据更新

  • mock.js 配置:

    {
      "code": 20000,
      "message": "修改成功",
      "data":"10" // 修改的文章id
    }
    



问答列表展示页

查询热门回答接口

  • 请求URL: /question/api/question/hot

  • 请求方式:POST

  • 描述:查询热门回答接口

  • mock.js 配置:按回复数量降序

    {
      "code": 20000,
      "message": "查询成功",
      "data": {
        "total": "@integer(100, 200)", // 总记录数
        "records|20": [{
          "id|+1": 10, //初始值10开始,每条+1
          "userId": "@integer(10, 30)",
          "nickName": "@cname",
          "userImage": "@image",
          "title": "@csentence", // 标题
          "viewCount": "@integer(5, 300)", // 浏览数
          "thumhup": "@integer(2, 20)", // 点赞数
          "reply": "@integer(1, 10)", // 回复数
          "status|1": [1, 2], //  1:未解决,2:已解决
          "createDate": "@datetime",
          "updateDate": "@datetime"
        }]
      }
    }
    

查询最新回答接口

  • 请求URL: /question/api/question/new

  • 请求方式:POST

  • 描述:查询最新回答接口

  • mock.js 配置:按创建时间降序

    {
      "code": 20000,
      "message": "查询成功",
      "data": {
        "total": "@integer(100, 200)", // 总记录数
        "records|20": [{
          "id|+1": 10, //初始值10开始,每条+1
          "userId": "@integer(10, 30)",
          "nickName": "@cname",
          "userImage": "@image",
          "title": "@csentence", // 标题
          "viewCount": "@integer(5, 300)", // 浏览数
          "thumhup": "@integer(2, 20)", // 点赞数
          "reply": "@integer(1, 10)", // 回复数
          "status|1": [1, 2], //  1:未解决,2:已解决
          "createDate": "@datetime",
          "updateDate": "@datetime"
        }]
      }
    }
    

查询等待回答接口

  • 请求URL: /question/api/question/wait

  • 请求方式:POST

  • 描述:查询等待回答接口

  • mock.js 配置:回复数 “reply”: 0 为等待问答数据

    {
      "code": 20000,
      "message": "查询成功",
      "data": {
        "total": "@integer(100, 200)", // 总记录数
        "records|20": [{
          "id|+1": 10, //初始值10开始,每条+1
          "userId": "@integer(10, 30)",
          "nickName": "@cname",
          "userImage": "@image",
          "title": "@csentence", // 标题
          "viewCount": "@integer(5, 300)", // 浏览数
          "thumhup": "@integer(2, 20)", // 点赞数
          "reply": 0, // 回复数
          "status": 1, //  1:未解决,2:已解决
          "createDate": "@datetime",
          "updateDate": "@datetime"
        }]
      }
    }
    




新增与修改问题

新增问题接口

  • 请求URL: /question/question
  • 请求方式: post
  • 描述:新增问题接口
  • mock.js 配置:
{
  "code": 20000,
  "message": "新增成功",
  "data": "10" // 新增的问题id
}

更新问题接口

更新会先查询问题详情,查询详情接口在上面已经定义好了。

  • 请求URL: /question/question
  • 请求方式: put
  • 描述:更新问题接口
  • mock.js 配置:
{
	"code": 20000,
	"message": "修改成功",
	"data": "11" // 修改的问题id
}




问答详情页面





问题详情数据接口

  • 请求URL: /question/api/question/{id}

  • 请求方式:GET

  • 描述:查询问题详情数据接口

  • mock.js 配置:包含问题所属标签ids集合 labelIds ,所属标签集合 labelList

    {
      "code": 20000,
      "message": "成功",
      "data": {
        "id": "10",
        "userId": "1",
        "nickName": "@cname",
        "userImage": "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif",
        "title": "@csentence", // 标题
        "viewCount": "@integer(0,100)",
        "thumhup": "@integer(0,10)",
        "reply": "@integer(0,3)",
        "status|1": [1, 2], //1:未解决,2:已解决
        "createDate": "@datetime",
        "updateDate": "@datetime", // 详情显示的时间
        "labelIds|1-5": ['@integer(10, 24)'], //随机产生1到5个元素的数字数组,数字取值10到24间
        "labelList|3": [{ // 所属标签集合
          "id|+1": 10,
          "name": "@word" // 标签名
        }],
        "mdContent": '参考官网配置:[https://cli.vuejs.org/zh/guid...](https://cli.vuejs.org/zh/guide/html-and-static-assets.html#public-文件夹)需要设置`BASE_URL````jsdata () {  return {    publicPath: process.env.BASE_URL  }}```然后```html<img :src="`${publicPath}my-image.png`">```',
    
        "htmlContent": '<p>参考官网配置:<br /><a href="https://cli.vuejs.org/zh/guide/html-and-static-assets.html#public-%E6%96%87%E4%BB%B6%E5%A4%B9" target="_blank">https://cli.vuejs.org/zh/guid…</a></p><p>需要设置<code>BASE_URL</code></p><pre><div class="hljs"><code class="lang-js">data () {  <span class="hljs-keyword">return</span> {    <span class="hljs-attr">publicPath</span>: process.env.BASE_URL  }}</code></div></pre><p>然后</p><pre><div class="hljs"><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">:src</span>=<span class="hljs-string">"`${publicPath}my-image.png`"</span>&gt;</span></code></div></pre>'
      }
    }
    




更新浏览量+1数据接口

  • 请求URL: /question/api/question/viewCount/{id}

  • 请求方式: PUT

  • 描述:更新问题浏览数量接口

  • mock.js配置:

    {
      "code": 20000,
      "message": "成功"
    }
    

根据标签ID查询回答列表

  • 请求URL: /question/api/replay/list/{questionId}
  • 请求方式: get
  • 描述:通过问题ID查询所有回答接口
  • mock.js 配置:包含子评论集合 children
{
  "code": 20000,
  "message": "成功",
  "data": [{
      "id": "1",
      "parentId": "-1",
      "userId": "1",
      "nickName": "@cname",
      "userImage": "@image",
      "questionId": "10",
      "mdContent": '改成相对路径试试```shpublicPath:"./"```',
      "htmlContent": '<p>改成相对路径试试</p><pre><div class="hljs"><code class="lang-sh">publicPath:<span class="hljs-string">"./"</span></code></div></pre>',
      "createDate": "@datetime",
      "children": []
    },
    {
      "id": "2",
      "parentId": "-1",
      "userId": "2",
      "nickName": "@cname",
      "userImage": "@image",
      "questionId": "10",
      "mdContent": "==特别强调==",
      "htmlContent": "<p><mark>特别强调</mark></p>",
      "createDate": "@datetime",
      "children": [{
        "id": "3",
        "parentId": "2",
        "userId": "3",
        "nickName": "@cname",
        "userImage": "@image",
        "questionId": "10",
        "mdContent": "@csentence",
        "htmlContent": "@csentence",
        "createDate": "@datetime",
        "children": [{
          "id": "4",
          "parentId": "3",
          "userId": "5",
          "nickName": "@cname",
          "userImage": "@image",
          "questionId": "10",
          "mdContent": "@csentence",
          "htmlContent": "@csentence",
          "createDate": "@datetime",
          "children": []
        }]
      }]
    },
    {
      "id": "5",
      "parentId": "-1",
      "userId": "6",
      "nickName": "@cname",
      "userImage": "@image",
      "questionId": "10",
      "mdContent": "需要设置`BASE_URL`",
      "htmlContent": "<p>需要设置<code>BASE_URL</code></p>",
      "createDate": "@datetime",
      "children": []
    }
  ]
}

更新问题点赞数量接口

  • 请求URL: /question/question/thumb/{questionId}/{count}

  • 请求方式: put

  • 描述:更新问题点赞数量接口

  • mock.js 配置:

    {
      "code": 20000,
      'message': "成功"
    }
    

新增回答数据接口

  • 请求URL: /question/replay

  • 请求方式: post

  • 描述:新增回答数据接口

  • mock.js 配置:

    {
      "code": 20000,
      "message": "新增成功"
    }
    

删除回答数据接口

  • 请求URL: /question/replay/{id}

  • 请求方式: delete

  • 描述:删除回答数据接口

  • mock.js 配置:

    {
      "code": 20000,
      "message": "删除成功"
    }
    




个人主页

查询个人用户信息

  • 请求URL: /system/user/{id}

  • 请求方式:GET

  • 描述:通过用户 ID 查询个人信息

  • mock.js 配置:

    {
      "code": 20000,
      "message": "查询成功",
      "data": {
        "id": 1,
        "username": "@name",
        "password": "xxxxxxx",
        "nickName": "@cname",
        "imageUrl": "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif",
        "mobile": /1\d{10}/,
        "email": "@email()",
        "createDate": "@date",
        "updateDate": "@date",
      }
    }
    

提交修改个人用户信息

  • 请求URL: /system/user

  • 请求方式: put

  • 描述:提交修改用户信息

  • mock.js 配置:

    {
      "code": 20000,
      "message": "修改成功"
    }
    

查询个人公开和私密文章

查询个人公开和私密文章后台接口是同一个,在调用这个接口时会传递一个 isPublic 参数(1 不公开,0公开)。

  • 请求URL: /article/article/user
  • 请求方式: post
  • 描述:查询个人公开和私密文章
  • mock.js 配置:
{
  "code": 20000,
  "message": "查询成功",
  "data": {
    "total": "@integer(100, 200)", // 总记录数
    "records|20": [{ //生成20条数据
      "id|+1": 10, //初始值10开始,每条+1
      "userId": "@integer(10, 30)",
      "nickName": "@cname",
      "userImage": "@image",
      "title": "@ctitle", // 标题
      "viewCount": "@integer(0, 100000)", // 浏览次数
      "thumhup": "@integer(0, 100000)", // 点赞数
      "ispublic|1": [0,1], // 0: 不公开 1:公开
      "status|1": [1, 2], //  1:未审核,2:已审核
      "updateDate": "@date",
    }]
  }
}

查询我的提问

  • 请求URL: /question/question/user

  • 请求方式: post

  • 描述:查询我的提问

  • mock.js 配置:

    {
      "code": 20000,
      "message": "查询成功",
      "data": {
        "total": "@integer(100, 200)", // 总记录数
        "records|20": [{
          "id|+1": 10, //初始值10开始,每条+1
          "userId": "@integer(10, 30)",
          "nickName": "@cname",
          "userImage": "@image",
          "title": "@csentence", // 标题
          "viewCount": "@integer(5, 300)", // 浏览数
          "thumhup": "@integer(2, 20)", // 点赞数
          "reply": "@integer(1, 10)", // 回复数
          "status|1": [1, 2], //  1:未解决,2:已解决
          "createDate": "@datetime",
          "updateDate": "@datetime"
        }]
      }
    }
    

添加校验原密码接口

  • 请求URL: /system/user/check/password

  • 请求方式: post

  • 描述: 校验原密码

  • mock.js 配置:

    {
      "code": 20000,
      "message": "校验成功"
    }
    




提交修改新密码接口

  • 请求URL: /system/user/password

  • 请求方式:PUT

  • 描述: 提交修改新密码

  • mock.js 配置:

    {
      "code": 20000,
      "message": "修改成功"
    }
    

前端调用接口的函数

article.js

export default({$axios}, inject) => {

  // 查询技术频道列表接口
  inject('getCategoryList', () => $axios.$get('/article/api/category/list'))


  // 获取指定位置的广告信息
  inject('getAdvertList', position => $axios.$get(`/article/api/advert/show/${position}`))

  // 文章列表分页接口
  inject('getArticleList', query => $axios.$post('/article/api/article/list', query) )

  // 查询文章详情
  inject('getArticleById', id => $axios.$get(`/article/api/article/${id}`))

  // 更新文章浏览数
  inject('updateArticleViewCount', id => $axios.$put(`/article/api/article/viewCount/${id}`))

  // 更新文章浏览数
  inject('updateArticleThumb', (articleId, count) => $axios.$put(`/article/article/thumb/${articleId}/${count}`))

  // 通过文章id查询评论列表
  inject('getCommentListByArticleId', articleId => $axios.$get(`/article/api/comment/list/${articleId}`))

  // 新增评论
  inject('addComment', data => $axios.$post(`/article/comment`, data))

  // 删除评论
  inject('deleteCommentById', id => $axios.$delete(`/article/comment/${id}`))

  // 获取所有正常状态的分类及标签
  inject('getCategoryAndLabel', () => $axios.$get(`/article/api/category/label/list`))

  // 新增文章
  inject('addArticle', data => $axios.$post(`/article/article`, data))


  // 修改文章
  inject('updateArticle', data => $axios.$put(`/article/article`, data))

}

common.js

export default ({$axios}, inject) => {
  // 上传图片
  inject('uploadImg', data => $axios.$post('/article/file/upload', data))

  // 删除图片 /article/file/delete?fileUrl=xxx
  inject('deleteImg', fileUrl => $axios.$delete('/article/file/delete', {params: {fileUrl}}))
}

question.js

export default ({$axios}, inject) => {
  // 热门回答
  inject('getHotList', page => $axios.$post('/question/api/question/hot', page))

  // 最新回答
  inject('getNewList', page => $axios.$post('/question/api/question/new', page))

  // 等待回答
  inject('getWaitList', page => $axios.$post('/question/api/question/wait', page))

  // 查询问题详情
  inject('getQuestionById', id => $axios.$get(`/question/api/question/${id}`))

  // 更新浏览数
  inject('updateQuestionViewCount', id => $axios.$put(`/question/api/question/viewCount/${id}`))

  // 通过问题id查询回复数据接口
  inject('getReplayByQuestionById', questionId => $axios.$get(`/question/api/replay/list/${questionId}`))

  // 更新点赞数
  inject('updateQuestionThumb', (questionId, count) => $axios.$put(`/question/question/thumb/${questionId}/${count}`))

  // 新增问题回答内容
  inject('addReplay', data => $axios.$post(`/question/replay`, data))

  // 删除回答内容, id 是回答内容的id
  inject('deleteReplayById', id => $axios.$delete(`/question/replay/${id}`))

  // 新增问题
  inject('addQuestion', data => $axios.$post(`/question/question`, data))

  // 修改问题
  inject('updateQuestion', data => $axios.$put(`/question/question`, data))

  // 通过标签id查询问题列表
  inject('getQuestionByLableId', (page, labelId) => $axios.$post(`/question/api/question/list/${labelId}`, page))

}

test.js

export default({$axios}, inject) => {
  // 测试注入
  inject('testInject', ()=>{
    console.log("注入成功")
    return new Promise((resolve, reject) => {
      resolve("注入成功");
    })
  })

  // 测试接口
  inject('getTestApi', () => $axios.$get('/test'))

}

user.js

export default ({$axios}, inject) => {

  // 查询个人用户信息
  inject('getUserInfo', id => $axios.$get(`/system/user/${id}`))

  // 提交修改个人用户信息
  inject('updateUserInfo', data => $axios.$put(`/system/user`, data))

  // 查询个人公开或私密文章 isPublic
  inject('findUserArticle', query => $axios.$post(`/article/article/user`, query))

  // 查询我的提问
  inject('findUserQuestion', query => $axios.$post(`/question/question/user`, query))

  // 校验原密码是否正确
  inject('checkOldPassword', data => $axios.$post('/system/user/check/password', data))
  
  // 提交修改密码
  inject('updatePassword', data => $axios.$put('/system/user/password', data))
}

对于Vue3和Vite的开发环境,需要在项目中安装Vue3和Vite相应的包。然后,通过在Vite配置文件中配置mock数据,实现TodoList数据的模拟。 首先,在项目根目录下安装Vue和Vite: ``` npm install vue@next vite --save-dev ``` 然后,在Vite的配置文件vite.config.js中配置mock数据: ```javascript module.exports = { server: { // 模拟API // 然后在api路径下,也就是在example/src/api路径下, // 根据接口路径,创建对应名称的.js文件,如/todo.js port: 3000, open: true, // 这里需要配置一下,否则会断开连接 cors: true, // 利用中间件,可以实现 mock 数据 // https://www.cnblogs.com/zero--007/p/11227108.html // 具体的编写方式可以参考上述链接 middleware: [createMockMiddleware()], }, }; ``` 其中,createMockMiddleware()方法是自定义的mock函数,示例代码如下: ```javascript const { createMockMiddleware } = require('vite-plugin-mock'); // 模拟数据 const todoData = [ { id: 1, label: "学习Vue3", done: false }, { id: 2, label: "学习Vite", done: false }, { id: 3, label: "学习TypeScript", done: true }, { id: 4, label: "整理网络知识", done: false }, ] module.exports = function () { return createMockMiddleware({ // 基于api路径,返回对应的数据 // 比如,在example/src/api/todo.js,就可以定义获取todoList数据的方法 // 比如: // export default [ // { // url: '/api/todo/list', // method: 'post', // response: () => { // return { // code: 200, // data: todoData // } // } // }, // ]; mockFiles: "src/api/*.js", }); }; ``` 在api路径下,就可以创建对应名称的js文件,如/todo.js。在该文件中,就可以定义获取todoList数据的方法,示例代码如下: ```javascript const todoData = [ { id: 1, label: "学习Vue3", done: false }, { id: 2, label: "学习Vite", done: false }, { id: 3, label: "学习TypeScript", done: true }, { id: 4, label: "整理网络知识", done: false }, ]; export default [ { url: "/api/todo/list", method: "post", response: () => { return { code: 200, data: todoData, }; }, }, ]; ``` 最后,在组件中使用api路径,获取todoList数据: ```javascript import { reactive, toRefs, onMounted } from "vue"; import axios from "axios"; export default { setup() { const state = reactive({ todoList: [], }); // 获取 todoList 数据 const getTodoList = () => { axios.post("/api/todo/list").then((res) => { state.todoList = res.data.data; }); }; // 组件加载时执行获取 todoList 数据 onMounted(() => { getTodoList(); }); // 最后需要将响应式对象转换为普通对象 return { ...toRefs(state) }; }, }; ``` 这样就可以实现Vue3和Vite环境下的TodoList数据模拟。请注意,本示例仅是提供了一个参考,实际的代码实现可能需要更加详细、复杂的设计,具体的实现方式可以参考Vue和Vite的官方文档,或者搜索相关的博客、论坛等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值