在如今的大前端时代,前端肯定不能只是去等待后端提供接口,借助Nodejs,前端也可以轻松实现接口的开发。
接口的开发过程自然少不了调试,对于get请求,可以直接使用浏览器访问进行测试,对复杂一些的请求,则需要借助工具进行调试。
本文记录了项目开发接口测试软件:DOClever的学习和实践
官网:doclever.cn
DOClever兼容最新swagger,postman平台数据,兼容markdown语法,可以用来管理接口文档,mock数据,并且拥有强大的无缝Mock能力。
Mock:我们定义好接口名称,接口类型和接口数据的返回类型,接口测试工具就可以帮我们自动的启动mock-server,这样我们请求的时候,就可以返回给我们mock的数据。
无缝Mock:DOClever中的接口可以识别“开发中”和“开发完成”状态,对于已经“开发完成”的,或者没找到mock接口,就自动转到真实接口。
DOClever内网部署流程:
github地址:https://github.com/sx1989827/DOClever/tree/master/docker
1.首先需要在服务器上安装docker和docker-compose,有了docker-compose,接下来就可以很轻松的部署DOClever,docker如果还没有安装好,请参考文章://www.greatytc.com/p/3b19b53b7ccb
查看当前docker版本:
docker --version
docker-compose --version
出现版本号则代表已成功安装对应的程序。
2.连接到云服务器,进入到自己想要的目录,比如我现在所在的位置是/home/doclever-test
运行指令:vi docker-compose.yml
按“i”进入编辑状态
version: "2"
services:
DOClever:
image: lw96/doclever
restart: always
container_name: "DOClever"
ports:
- 20080:10000
volumes:
- /srv/doclever/file:/root/DOClever/data/file
- /srv/doclever/img:/root/DOClever/data/img
- /srv/doclever/tmp:/root/DOClever/data/tmp
environment:
- DB_HOST=mongodb://mongo:27017/DOClever
- PORT=10000
links:
- mongo:mongo
mongo:
image: mongo:latest
restart: always
container_name: "mongodb"
volumes:
- /srv/doclever/db:/data/db
注意要保留正确的缩进
上面的代码修改了三处:
①.修改ports(20080)
②.修改“本地路径”(/srv/doclever/)
③.修改数据目录(/srv/doclever/)
esc+:wq 退出编辑状态并保存文件修改
3.运行指令:docker-compose up -d
查看容器运行状态:
docker ps | grep doclever
注意要放行20080端口
firewall-cmd --state
firewall-cmd --list-all
ubuntu上查看端口放行状态:ufw allow
放行端口:firewall-cmd --add-port=20080/tcp --zone=public --permanent
重启让刚才的配置生效:firewall-cmd --reload
查看:firewall-cmd --list-all
此时访问ip+端口就可以看到和官网一样的属于自己服务器上的doclever,管理总后台的帐号密码是 DOClever
总后台密码可以修改,另外还可以在注册帐号。
4.添加项目接口,实现无缝Mock
此时在DOClever中添加上自己的项目和接口数据后,点击“设置”页面中的Mock
将相应的net.js复制到本地,然后打开cmd,执行指令:node net.js http://106.13.5.134:20080/mock/5ff3b28ccb1303000c2e4c5a http://localhost:8081
http://106.13.5.134:20080/mock/5ff3b28ccb1303000c2e4c5a 是自己DOClever的运行地址,http://localhost:8081是真实接口的请求地址,如果DOClever上的接口不存在或者接口状态是“开发完成”,则项目会自动请求真实地址,运行文件成功cmd会打印日志:正在监听端口36742
所以需要把项目的baseUrl也进行相应的端口:
export default {
baseUrl: {
dev: 'http://localhost:36742',
pro: 'http://localhost:8081'
}
}