文章目录
前言:
作为一个前端开发人员,经常会遇到一种情况就是 在后端接口没有出来之前,需要去mock数据,等待真实接口开发完后,替换成真实的接口,而在mock的过程中如果采用假数据的方式进行mock,一是增加无趣的工作量,二是造成了代码入侵,所以应该如果减少这种工作量呢?
其实作为前端可以搭建一个自己的mock平台,去帮我们完成mock和接口管理的工作
经过一番探索,最终选择由去哪儿开源的YApi进行接口mock管理
特性
:
- 免费开源,内网部署,信息再也不怕泄露了
- 支持 postman, har, swagger 数据导入
- 支持mock数据,类似 postman 的接口调试
- 自动化测试, 支持对 Response 断言
- 支持插件多,可拓展性强
这里是
接口管理以及前端mock数据调研报告
最终选用
Docker
进行
YApi
部署
注意事项:
-
安装有
Git
、
Docker
、
Docker Compose
- Yapi最好安装1.9.1 ===> 最新版本(1.10.1)版本中mock数据生成不友好
- yapi-mongo安装4.4.4 ===> 安装5.X版本的会提示:MongoDB 5.0+ requires a CPU with AVX support
一、安装docker
1.更新yum源,更新到最新(也可不更)
[root@192-168-0-193 ~]# yum update
已加载插件:fastestmirror
Determining fastest mirrors
epel/x86_64/metalink | 9.1 kB 00:00:00
* base: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
...
...
正在解决依赖关系
--> 正在检查事务
---> 软件包 GeoIP.x86_64.0.1.5.0-13.el7 将被 升级
---> 软件包 GeoIP.x86_64.0.1.5.0-14.el7 将被 更新
--> 正在处理依赖关系 geoipupdate,它被软件包 GeoIP-1.5.0-14.el7.x86_64 需要
...
...
替代:
iwl7265-firmware.noarch 0:22.0.7.0-69.el7
完毕!
2. 安装git(如已安装请忽略)
[root@192-168-0-193 ~]# yum install git
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 git.x86_64.0.1.8.3.1-23.el7_8 将被 安装
...
...
已安装:
git.x86_64 0:1.8.3.1-23.el7_8
作为依赖被安装:
perl-Error.noarch 1:0.17020-2.el7 perl-Git.noarch 0:1.8.3.1-23.el7_8
perl-TermReadKey.x86_64 0:2.30-20.el7 rsync.x86_64 0:3.1.2-10.el7
完毕!
3.安装需要的依赖软件包
yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
[root@192-168-0-193 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
软件包 device-mapper-persistent-data-0.8.5-3.el7_9.2.x86_64 已安装并且是最新版本
软件包 7:lvm2-2.02.187-6.el7_9.5.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 yum-utils.noarch.0.1.1.31-54.el7_8 将被 安装
...
...
已安装:
yum-utils.noarch 0:1.1.31-54.el7_8
作为依赖被安装:
libxml2-python.x86_64 0:2.9.1-6.el7.5 python-kitchen.noarch 0:1.1.1-5.el7
完毕!
4.设置yum源
[root@192-168-0-193 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
5.安装Docker
yum list docker-ce --showduplicates | sort -r
上面代码可以查看所有仓库所有docker版本,选择特定版本进行安装
这里选择
17.12.1.ce
版本的进行安装,这里稍微有点慢,需要等待一下
[root@192-168-0-193 ~]# yum install docker-ce-17.12.1.ce
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
docker-ce-stable | 3.5 kB 00:00:00
(1/2): docker-ce-stable/7/x86_64/updateinfo | 55 B 00:00:00
(2/2): docker-ce-stable/7/x86_64/primary_db | 63 kB 00:00:03
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker-ce.x86_64.0.17.12.1.ce-1.el7.centos 将被 安装
6. 启动docker,加入开机启动
[root@192-168-0-193 docker-YApi]# systemctl start docker
[root@192-168-0-193 docker-YApi]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
7. 查看版本是否成功安装
[root@192-168-0-193 docker-YApi]# docker version
Client:
Version: 17.12.1-ce
API version: 1.35
Go version: go1.9.4
Git commit: 7390fc6
Built: Tue Feb 27 22:15:20 2018
OS/Arch: linux/amd64
Server:
Engine:
Version: 17.12.1-ce
API version: 1.35 (minimum version 1.12)
Go version: go1.9.4
Git commit: 7390fc6
Built: Tue Feb 27 22:17:54 2018
OS/Arch: linux/amd64
Experimental: false
二、安装Dcoker Compose
[root@192-168-0-193 ~]# sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 633 100 633 0 0 903 0 --:--:-- --:--:-- --:--:-- 902
100 15.4M 100 15.4M 0 0 466k 0 0:00:33 0:00:33 --:--:-- 2759k
[root@192-168-0-193 ~]# sudo chmod +x /usr/local/bin/docker-compose // 将可执行权限应用于二进制文件
[root@192-168-0-193 ~]# sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose //创建软链
[root@192-168-0-193 ~]# docker-compose --version //测试是否安装成功
docker-compose version 1.24.1, build 4667896b
三、安装docker-YApi
1. 克隆docker-YApi
[root@192-168-0-193 ~]# mkdir myYapi && cd myYapi && git clone https://gitee.com/fjc0k/docker-YApi.git
正克隆到 'docker-YApi'...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 477 (delta 1), reused 0 (delta 0), pack-reused 470
接收对象中: 100% (477/477), 84.42 KiB | 0 bytes/s, done.
处理 delta 中: 100% (260/260), done.
2. 修改docker-compose.yml配置文件
使用
vi docker-compose.yml
进入修改
-
将
yapi-web
修改为
1.9.1
版本 -
将
yapi-mongo
修改为
4.4.4
版本 -
YAPI_ADMIN_ACCOUNT
为管理员邮箱 -
YAPI_ADMIN_PASSWORD
为管理员密码
[root@192-168-0-193 myYapi]# ls
docker-YApi
[root@192-168-0-193 myYapi]# cd docker-YApi/
[root@192-168-0-193 docker-YApi]# ls
clean.ts Dockerfile LICENSE prepare.ts start.ts
docker-compose.yml Dockerfile.web package.json README.md tsconfig.json
[root@192-168-0-193 docker-YApi]# vi docker-compose.yml
version: '3'
services:
yapi-web:
image: jayfong/yapi:1.9.1 # 此处yapi-web修改为1.9.1版本
container_name: yapi-web
ports:
- 40001:3000
environment:
- YAPI_ADMIN_ACCOUNT=admin@admin.com
- YAPI_ADMIN_PASSWORD=admin
- YAPI_CLOSE_REGISTER=true
- YAPI_DB_SERVERNAME=yapi-mongo
- YAPI_DB_PORT=27017
- YAPI_DB_DATABASE=yapi
- YAPI_MAIL_ENABLE=false
- YAPI_LDAP_LOGIN_ENABLE=false
- YAPI_PLUGINS=[]
depends_on:
- yapi-mongo
links:
- yapi-mongo
restart: unless-stopped
yapi-mongo:
image: mongo:4.4.4 # 此处yapi-mongo修改为4.4.4版本
container_name: yapi-mongo
volumes:
- ./data/db:/data/db
3. 启动服务==>端口40001
[root@192-168-0-193 docker-YApi]# docker-compose up -d //-d参数表示在后台挂起
Creating network "docker-yapi_default" with the default driver
Pulling yapi-mongo (mongo:4.4.4)...
4.4.4: Pulling from library/mongo
6e0aa5e7af40: Pull complete
d47239a868b3: Pull complete
49cbb10cca85: Pull complete
9729d7ec22de: Pull complete
7b7fd72268d8: Pull complete
5e2934dacaf5: Pull complete
bf9da24d4b2c: Pull complete
d2f8c3715616: Pull complete
dac42b84e850: Pull complete
0724cb122c25: Pull complete
f0fe10b8b0c1: Pull complete
28e025c87f29: Pull complete
Digest: sha256:75a5f624bd6d14254e0d84c2833f576109672750aaf2bf01d61cb5ead44f4505
Status: Downloaded newer image for mongo:4.4.4
Pulling yapi-web (jayfong/yapi:1.9.1)...
1.9.1: Pulling from jayfong/yapi
cbdbe7a5bc2a: Pull complete
8f3938f7d3bd: Pull complete
6e3c12f5dc10: Pull complete
ce0cb7a9eeee: Pull complete
dbbdd36b7a14: Pull complete
262d0fbbe4df: Pull complete
Digest: sha256:d35a0b8b2d9b266df512e8bf42f0940228a66a9bc33e628df040dfbf4e32d13c
Status: Downloaded newer image for jayfong/yapi:1.9.1
Creating yapi-mongo ... done
Creating yapi-web ... done
四、部署完成
地址栏输入:
http://部署机器的ip:40001/
进行访问
参考文档
往期精彩文章