MockServer实现前后数据交互分离
在与后台进行数据交互的过程中,作为前端开发者有个深深的痛点,当我们与后台沟通好了前后数据交互的规则后,就开始等后台完全开发好接口我们才能进一步工作;说白了工作发生阻塞了,严重影响工作效率;
通过(json-server+mock.js+proxy),其中proxy表示代理,通过json-server工具将json数据以接口的形式调用,其中json数据是通过(mock.js或faker.js)来进行实现的;至于代理可以用nginx服务进行代理处理,或者通过web-dev-server服务器中proxy配置进行配置;
Json-server工具:
通过npm包管理器进行安装:
cnpm install -g json-server
安装成功后在项目目录下建立test.json文件,内容如下:
然后在test.json目录运行json-server test.json命令,默认是3000端口;
运行成功如下:
若端口错误导致运行失败;就运行json-server test.json --port xxxx命令更改端口
打开http://localhost:9090页面,会出现一下页面;
单击Resources其中的某个链接会出现相应的数据;可以用postman工具进行接口测试;
若想更改json文件时不需要重新启动json-server,只需将命令改成json-server wacth test.json --port xxxx即可;是不是很强大;还不止于此,json-server可以完全模仿restful api接口的形式开发,进行数据上的增删改查;如下:
多种请求方式:(增,删,改,查)
GET /posts //数据查询
GET /posts/1 //id=1数据查询
POST /posts //增加数据
PUT /posts/1 //全部更新id=1的数据
PATCH /posts/1 //部分更新id=1的数据
DELETE /posts/1 //删除id=2的数据
Json-server功能强大,很多功能都值得研究,比如:静态文件服务器,路由配置,将json-server进行模块开发;这里就不一一列出来,参考网址:https://www.jianshu.com/p/ebb823bfbcb2;
Mock.js和Faker.js这两个都是数据模拟库,至于具体的区别Mock.js对于英语菜的来说,学习代价低,学习资料都是中文的;mock.js官网地址:http://mockjs.com/
对于请求我们最好放到服务器上运行,如果是单纯的静态文件上的数据请求可以用json-server静态文件配置命令进行配置,命令如下:
Json-server test.json --static ./public --port xxxx //注意一定需要有public目录,浏览器打开的http://localhost:xxxx默认指向public目录或public目录下的index.html;
通过webpack的模块Webpack-dev-server来进行服务器的搭建,在这里可能会遇到跨域的问题,只需要配置webpack-dev-server中的proxy即可;
Nginx服务器,个人用的比较多,感觉配置简单,基础学习上手容易;想了解的可以自行百度了解下nginx服务器;