vue 开发常用工具及配置四:推荐一个 mock 工具

  • 2020 年 1 月 14 日
  • 筆記

本文大约 1000 字。


在系统原型设计阶段,或后端接口不足备的情况下,如何验证模型信息的完整性?此时 mock 是一个不错的选择。

一般开发者可能倾向于直接写后端接口,哪怕只是返回假数据。之前作者也是这么想的,后来在试用了 mock 工具之后,想法转变了。

首先,全局安装 json-server:

yarn global add json-server

然后在 /go 目录下创建一个 db.json 文件,内容如下:

{   "posts": [     { "id": 1, "title": "json-server", "author": "typicode" },     { "id": 2, "title": "json-server2", "author": "typicode2" }   ],   "comments": [     { "id": 1, "body": "some comment", "postId": 1 }   ],   "profile": { "name": "typicode" }  }

接着在 /go 目录下以如下命令启动 json-server:

json-server -p 8080 --watch db.json

这里的 8080 端口,是为了与之前使用过的端口保持一致。

在前端 vue 组件里,这样调用:

axios.get('/api/posts/1')   .then(function (response) {     console.log("result",response);   })

运行项目,就可以在控制台看到打印的结果。

直接访问接口地址也可以,例如:http://localhost:3000/posts,或http://localhost:3000/posts/1。

json-server 的妙处在于,它允许使用一个 json 文件定义数据,并且修改 json 内容,json-server 不需要重启,接口内容自动更有变化;更方便的地方还在于,像 /posts、/posts/1 这样的 Restful API 接口不需要手工定义,json-server 会根据 db.json 的内容自动按约定构建接口列表。

在 db.json 有模型 posts,所以以下接口都存在:

GET    /posts  GET    /posts/1  POST   /posts  PUT    /posts/1  PATCH  /posts/1  DELETE /posts/1

还支持参数过滤:

GET /posts?title=json-server&author=typicode  GET /posts?id=1&id=2  GET /comments?author.name=typicode

还有分页:

GET /posts?_page=7  GET /posts?_page=7&_limit=20

排序:

GET /posts?_sort=views&_order=asc  GET /posts/1/comments?_sort=votes&_order=asc

等等。更多内容在这里查看:

https://github.com/typicode/json-server

源码

https://git.code.tencent.com/shiqiaomarong/vue-go-rapiddev-example/tags/v20191231

参考链接

https://yarnpkg.com/zh-Hans/docs/cli/global

https://github.com/typicode/json-server

[专栏]基于 vue+go 如何快速进行业务迭代?