这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战。
一、搭建mock服务器的必要性
- 在公司的实际开发业务中,无论是PC端、H5端、还是后台管理系统的前端部分,大多采用前后端分离的开发模式。在从产品评审完原型,前后端程序员,开始了各自的开发。等到了前后端接口的时候,往往因为,前后端程序员定义的数据结构和字段不一致,导致要修改很多的代码,又或者后端要的数据规范前端传值不对,反复的调试,从而大大的影响了开发的效率。
- 因而,在原型评审完后,前后端程序员,不应该立马埋头就开始按照各自的理解就去开发,而应该先商量好传参和返回数据的规范,先完成mock接口的假数据,后期调试的时候,只需要换个地址成真实的接口地址,一个模块的联调自测时间可以从原来的一天,缩短到2-3个小时,这将大大的提高开发效率,从而提早进入测试阶段,更早的上线,提高团队效率,解决团队资源,时间成本。特别是多个小团队,并行项目的时候,提升的更加明显。
二、利用docker搭建mocker服务器
2.1 准备一台云服务器,安装docker、docker-compose
# 1. 设置稳定仓库
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 2. 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 3. 安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 4. 权限
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker -v 查看docker成功安装
2.2 利用刚装好的docker,部署MongoDB
docker pull mongo:4
# 运行容器
sudo docker run -d --name some-mongo -p 10050:27017 mongo:4
# 查看docker进程
docker ps
# 放行端口
firewall-cmd --zone=public --add-port=10050/tcp --permanent
# 重新加载防火墙配置文件
firewall-cmd --reloadjs
docker ps 看mongoDb已经跑起来了
我们可以在本地用studio 3T链接mongodb
注意如果不能链接,看在云服务器是否放行了对应的端口,
2.3 利用docker,部署mock服务器
市场上的mock服务,好用的有两种
- doclever doclever.cn/controller/…
- yapi hellosean1025.github.io/yapi/index.… 下面我们使用doclevel来部署mock 使用docker-compose
# 1. 在 /home/doclever/ 下创建 vi docker-compose.yml
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
# 2. 使用命令运行容器
docker-compose up -d
# 3. 云服务器放行端口20080
接下来外网访问成功
三、使用doclever
1. 配置好接口好,可以直接postman访问mock服务器, 也可以作为内网本地访问
2. 一旦后端人员把接口状态标记开发完成, 就不会走mock服务器了, 就会走后面的地址了
# http://localhost:8081 是开发完成后走的地址
node net.js http://***.**.222.218:20080/mock/612a3548977249000c84c170 http://localhost:8081
开发完成, 本地没有接口postman就报错了, 证明环境切回正式的接口了