一、Easy Mock 是什么?官方的介绍是这样的
Easy Mock 是一个可视化,并且能快速生成模拟数据的持久化服务。
更多详细信息请翻阅官方文档 easy-mock
二、特性
- 支持接口代理
- 支持快捷键操作
- 支持协同编辑
- 支持团队项目
- 支持 RESTful
- 支持 Swagger | OpenAPI Specification (1.2 & 2.0 & 3.0)
1)基于 Swagger 快速创建项目
2)支持显示接口入参与返回值
3)支持显示实体类 - 支持灵活性与扩展性更高的响应式数据开发
- 支持自定义响应配置(例:status/headers/cookies)
- 支持 Mock.js 语法
- 支持 restc 方式的接口预览
三、为什么要自己部署Easy Mock 项目呢
easy mock 是免费的开源项目,是完全免费的,你说全国人民都在用,一般不收费的系统怎么样的起来这,这么庞大的数据量;其次用的人太多,导致官网经常瘫痪,你能连上真的是说明你人品爆表。好在官方把源码开放出来,提供了我们 2种 部署的方式,下面我会一一介绍,并且把容易出错的点给大家标出,毕竟笔者当初一个坑接着一个坑踩出来的,还是希望大家能少走点弯路吧。
四、快速开始
在开始之前,假设你已经成功安装了 Node.js(v8.x, 不支持 v10.x)& MongoDB(>= v3.4)& Redis(>= v4.0)。
注意事项
Nodejs 一定要是 v8.x 的,我曾经在这坑了好久,都是以前粗心习惯了,阅读文档没有仔细看,最后还是在论坛中找到原因的,希望大家不要在犯同样的错误了
1)安装
$ git clone https://github.com/easy-mock/easy-mock.git
$ cd easy-mock && npm install
2)更改配置文件
找到 config/default.json,或者创建一个 config/local.json 文件,将如下需要替换的字段换成自己的配置即可。
不同环境会加载不同的配置文件,在此之前你应该对 node-config 有所了解。不懂得可以去查阅官方文档。
下面贴上官方给的配置文件,即 default.json,只需把 localhost
改成自己的 IP 地址即可
{
"port": 7300,
"host": "0.0.0.0",
"pageSize": 30,
"proxy": false,
"db": "mongodb://localhost/easy-mock",
"unsplashClientId": "",
"redis": {
"keyPrefix": "[Easy Mock]",
"port": 6379,
"host": "localhost",
"password": "",
"db": 0
},
"blackList": {
"projects": [], // projectId,例:"5a4495e16ef711102113e500"
"ips": [] // ip,例:"127.0.0.1"
},
"rateLimit": { // https://github.com/koajs/ratelimit
"max": 1000,
"duration": 1000
},
"jwt": {
"expire": "14 days",
"secret": "shared-secret"
},
"upload": {
"types": [".jpg", ".jpeg", ".png", ".gif", ".json", ".yml", ".yaml"],
"size": 5242880,
"dir": "../public/upload",
"expire": {
"types": [".json", ".yml", ".yaml"],
"day": -1
}
},
"ldap": {
"server": "", // 设置 server 代表启用 LDAP 登录。例:"ldap://localhost:389" 或 "ldaps://localhost:389"(使用 SSL)
"bindDN": "", // 用户名,例:"cn=admin,dc=example,dc=com"
"password": "",
"filter": {
"base": "", // 查询用户的路径,例:"dc=example,dc=com"
"attributeName": "" // 查询字段,例:"mail"
}
},
"fe": {
"copyright": "",
"storageNamespace": "easy-mock_",
"timeout": 25000,
"publicPath": "/dist/"
}
}
3)背景图配置(也可以不更改)
登录页的背景图服务目前支持 Unsplash 与 Bing。
如果 unsplashClientId
配置留空,默认由 Bing 提供服务。
4)注意事项
publicPath
默认是 '/dist/'
。如有需要,可以将其替换成自己的 CDN;
关于 fe
的配置,一旦发生改变应该重新执行 build
命令。
5)启动
$ npm run dev
# 访问 http://127.0.0.1:7300
6)更多命令
# 前端静态资源构建打包
$ npm run build
# 以生产环境方式启动,需要提前执行 build
$ npm run start
# 单元测试
$ npm run test
# 语法检测
$ npm run lint
五、服务器部署
在此之前请先配置好配置文件。
全局安装 PM2
$ npm install pm2 -g
使用pm2 托管 easy-mock
# 在此之前,你应该已经完成了 build。
$ NODE_ENV=production pm2 start app.js
六、docker方式安装与部署
首先在命令行输入
$ docker --version
确保你所持有的服务器是安装了docker的
如果没有请去官网查看不同环境的安装方式 安装docker
1)新建目录
$ mkdir docker-easy-mock
2)复置default.json
假设你已经在 easy-mock/config/ 目录下
$ cp default.json production.json
3)编辑production.json
$ vim production.json
需要改动2个地方
"db": "mongodb://mongodb/easy-mock", # host 请务必替换为mongodb, 而非 localhost
"redis": {
"keyPrefix": "[Easy Mock]",
"port": 6379,
"host": "redis", # 请勿使用 localhost,换 "redis"
"password": "",
"db": 0
},
3)创建 docker-compose 配置文件
$ touch docker-compose.yml
4)编辑配置文件
$ vim docker-compose.yml
version: '3'
services:
mongodb:
image: mongo:3.4.1
volumes:
# ./data/db 数据库文件存放地址,根据需要冒号后面修改为本地地址
- './data/db:/data/db'
networks:
- easy-mock
restart: always
redis:
image: redis:4.0.6
command: redis-server --appendonly yes
volumes:
# ./data/redis redis 数据文件存放地址,根据需要冒号后面修改为本地地址
- './data/redis:/data'
networks:
- easy-mock
restart: always
web:
image: easymock/easymock:1.6.0
command: /bin/bash -c "npm start"
ports:
- 7300:7300
volumes:
# 日志地址,根据需要把冒号后面修改为本地地址
- './logs:/home/easy-mock/easy-mock/logs'
# 配置地址, 把冒号后面使用本地配置地址替换
- './production.json:/home/easy-mock/easy-mock/config/production.json'
networks:
- easy-mock
restart: always
networks:
easy-mock:
然后将内容中注释位置替换为自己需要的本地地址即可。主要有4个需要替换的地方,mangodb和redis数据库文件存储位置,日志文件存储位置,自定义配置文件本地地址。
5)使用方式
我还是推荐大家使用pip安装,官方虽然推荐使用二进制安装方式,但是我下了十几个小时,愣是没一点反应,最后只好使用pip来安装。
$ [sudo] pip install -U docker-compose
我就喜欢看见 Successfully,可以看到类似如下输出,说明安装成功。
Collecting docker-compose
Downloading docker-compose-1.24.1.tar.gz (149kB): 149kB downloaded
...
Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress
在 docker-easy-mock 文件夹下执行以下命令
$ docker-compose up -d
-d 是不显示安装详情,只显示进度,等待安装完成
安装完成之后在浏览器打开 ip:7300 就可以了
Error: EACCES: permission denied....
可在项目根目录执行以下命令
chmod 777 /你的文件路径/logs
如果还有什么问题可以在下面评论哦,有问题我们可以一同解决
另外,习惯了使用windows系统,真的很讨厌使用linux这种命令行的方式来执行,大家可以参考我的另一篇文章,linux图形化服务器面板,开箱即用,妈妈再也不用担心我的学习了,哪里不会点哪里,再菜的鸟看了这篇文章也能够立马学会。