Mock神器:Easy-Mock 私有化部署及使用介绍

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
日志服务 SLS,月写入数据量 50GB 1个月
简介: Easy-Mock 是一个非常实用的模拟数据工具,尤其在前后端分离开发的场景中,可以极大地提高前端开发效率。通过将 Easy-Mock 部署为私有化服务,你可以完全掌控模拟数据的生成和管理,同时保障数据的安全性和隐私性。

th.jpg

在现代前后端分离的开发模式中,后端接口的数据模拟是一个常见且必要的需求。尤其是在后端接口尚未开发完成时,前端开发需要依赖模拟数据进行开发与测试。Easy-Mock 是一个非常流行的开源工具(虽然它已经停止更新好长时间了),它可以帮助我们快速模拟 RESTful API 接口,支持 JSON 数据返回、接口路由配置等功能,极大地提高了前后端协作的效率。

在实际的企业应用中,出于安全性、隐私保护或自定义需求,很多团队需要将 Easy-Mock 部署为私有化服务。本文将介绍如何将 Easy-Mock 部署到本地服务器或私有云环境中,并提供一些基本的使用指南。

介绍

Easy Mock 是一个可视化,并且能快速生成模拟数据的持久化服务。可私有化部署

特性

  • 支持接口代理
  • 支持快捷键操作
  • 支持协同编辑
  • 支持团队项目
  • 支持 RESTful
  • 支持 Swagger | OpenAPI Specification (1.2 & 2.0 & 3.0)
    • 基于 Swagger 快速创建项目
    • 支持显示接口入参与返回值
    • 支持显示实体类
  • 支持灵活性与扩展性更高的响应式数据开发
  • 支持自定义响应配置(例:status/headers/cookies)
  • 支持 Mock.js 语法
  • 支持 restc 方式的接口预览

github地址:https://github.com/easy-mock/easy-mock

_20241209153404.jpg

私有化部署

我直接使用的是docker部署的,作者再dockerhub上提供了一个镜像https://hub.docker.com/r/easymock/easymock

_20241209154219.jpg

此服务依赖redis和mongodb,我之前部署过redis和mongodb,所以此处仅需要部署web服务就可以了。

创建docker-compose.yml

首先,我们再服务器上创建一个部署目录easymock,在此目录下创建docker-compose.yml文件,内容如下:

docker-compose.yml

services:
  web:
    image: registry.cn-hangzhou.aliyuncs.com/xjpublic/easymock:latest
    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
      # 上传文件
      - ./public:/home/easy-mock/easy-mock/public
    restart: always

官方镜像是easymock/easymock:1.6.0,我在这转存到阿里云镜像仓库中了,下载不下来的家人可以使用我阿里云镜像仓库中的镜像。

创建production.json配置文件

在docker-compose.yml同级目录下创建production.json配置文件,文件需要给其它用户赋予读权限sudo chmod +r production.json,文件内容如下:

production.json

{
   
  "port": 7300,
  "host": "0.0.0.0",
  "pageSize": 30,
  "proxy": false,
  "db": "mongodb://root:123456@192.168.31.20:27017/easy-mock",
  "unsplashClientId": "",
  "redis": {
   
    "keyPrefix": "[Easy Mock]",
    "port": 6379,
    "host": "192.168.31.20",
    "password": "123456",
    "db": 0
  },
  "blackList": {
   
    "projects": [],
    "ips": []
  },
  "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": "",
    "bindDN": "",
    "password": "",
    "filter": {
   
      "base": "",
      "attributeName": ""
    }
  },
  "fe": {
   
    "copyright": "",
    "storageNamespace": "easy-mock_",
    "timeout": 25000,
    "publicPath": "/dist/"
  }
}

需要注意修改的配置文件是mongodb的连接地址,用户密码及数据库,redis的连接地址及密码

启动服务

配置好之后,在docker-compose.yml同级目录下执行以下命令启动服务

docker-compose up -d

查看容器启动日志:

docker-compose logs -f

如果出现以下日志:

_20241209094336.jpg

则为日志文件权限问题,给挂载日志目录logs赋予权限

sudo chmod -R 777 logs

之后重启容器,出现以下日志则说明启动成功了

_20241209160805.jpg

服务使用

在浏览器中打开地址 http://192.168.31.20:7300 打开服务,输入用户名密码登录系统,如果用户之前没有,则会注册

_20241209164213.jpg

登录之后创建项目,创建接口,具体步揍可查看文档
_20241209164422.jpg

我们创建接口之后配置响应数据,Easy Mock 引入了 Mock.js,下面我们演示两个接口。更详尽的用例及文档请参考 Mock.js 官网。

  • 配置响应数据(随机数据)
{
   
  "code": 200,
  "data|10": [{
   
    "string|1-2": "@string",
    "integer": "@integer(10, 30)",
    "float": "@float(60, 100, 2, 2)",
    "boolean": "@boolean",
    "date": "@date(yyyy-MM-dd)",
    "datetime": "@datetime",
    "now": "@now",
    "url": "@url",
    "email": "@email",
    "region": "@region",
    "city": "@city",
    "province": "@province",
    "county": "@county",
    "upper": "@upper(@title)",
    "guid": "@guid",
    "id": "@id",
    "image": "@image(200x200)",
    "title": "@title",
    "cparagraph": "@cparagraph",
    "csentence": "@csentence"
  }]
}

_20241209165001.jpg

数据响应

_20241209165156.jpg

  • 配置响应数据(函数)
{
   
  code: function({
   
    _req
  }) {
   
    if (_req.body.username && _req.body.password && _req.body.username === 'admin' && _req.body.password === '111') {
   
      return 200
    } else {
   
      return 500
    }

  },
  token: function({
   
    _req
  }) {
   
    if (_req.body.username && _req.body.password && _req.body.username === 'admin' && _req.body.password === '111') {
   
      return "1111"
    } else {
   
      return
    }

  },
  msg: function({
   
    _req
  }) {
   
    if (_req.body.username && _req.body.password && _req.body.username === 'admin' && _req.body.password === '111') {
   
      return "成功"
    } else {
   
      return "失败"
    }

  }

}

数据响应

_20241209165619.jpg

_20241209165638.jpg

总结

Easy-Mock 是一个非常实用的模拟数据工具,尤其在前后端分离开发的场景中,可以极大地提高前端开发效率。通过将 Easy-Mock 部署为私有化服务,你可以完全掌控模拟数据的生成和管理,同时保障数据的安全性和隐私性。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
8月前
阿萨学工具:Apifox 用Mock.js写高级Mock的期望
阿萨学工具:Apifox 用Mock.js写高级Mock的期望
212 0
|
XML 前端开发 测试技术
【前端小技巧】如何使用 Eolink Apilkit 调用 Mock ?
在开发过程中,进度比较赶的情况下,前端人员当页面写完时,后台的接口还没写完,等要交付的时候后端才把接口给你,这个时候就很尴尬。 这个时候 Mock 就可以很好的解决这个问题,前端团队可以在 API 还没开发完成的情况下,借助 Mock API 实现预对接,加速开发进程。测试团队可以通过 Mock API 解决不必要的系统,完成集成测试。 Eolink Apikit 为前端工程师提供 API 文档管理,快速接口测试,以及 Mock API 创建与调用,及查看文档变更历史的能力。有助于前端工程师快速查看 API 文档详情与历史记录,快速生成和使用 Mock API 提前进行页面效果验证。
85 0
|
NoSQL 数据可视化 JavaScript
搭建easy-mock数据模拟服务器
搭建easy-mock数据模拟服务器
搭建easy-mock数据模拟服务器
|
7月前
|
数据可视化 Linux Android开发
Mock 工具与定制化
mitmproxy 是跨平台的开源代理工具,用于抓包和修改 HTTP/HTTPS 流量,支持 Python 脚本扩展。通过 mitmproxy、mitmweb 和 mitmdump,用户能进行交互式抓包、可视化分析和自定义数据处理。官网:[mitmproxy.org](https://mitmproxy.org)
|
8月前
|
JSON 网络架构 数据格式
Easy-Mock 全解及其详细使用
Easy-Mock 全解及其详细使用
133 0
|
前端开发 JavaScript 测试技术
【Eolink Apikit】Mock 解决方案
在开发过程中,由于后端与前端并行开发,或者前端需要等待后台开发,难以保证对接效率,同时即使用开发好的 API 对接,也有可能一个 API 不通就阻塞了整个软件的对接工作。同时对软件的敏感度也很高,一不小心就可能导致整个软件不能正常工作。并且界面之间存在着严重的相互依赖关系,产生的业务逻辑非常复杂,这些都会对软件的开发效率产生很大的影响。 所以学习如何利用最好的 Mock 数据是很关键的。这样做会降低前端开发者的工作量,降低开发费用,提高开发效率。 以下是一些常见的 Mock 方法,我们可以根据具体的场景和条件来进行选择和配置。最关键的是要知道如何去做,并从中挑选出最适合自己的方式。
317 0
【Eolink Apikit】Mock 解决方案
|
NoSQL JavaScript 前端开发
部署自己的MOCK(一)
本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。
部署自己的MOCK(一)
|
数据可视化 前端开发 Java
Mock工具介绍,为什么使用Mock?
Mock工具介绍,为什么使用Mock?
636 0
部署自己的MOCK(二)
本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。
本地部署easy-mock生成模拟数据
本地部署easy-mock生成模拟数据
204 0
本地部署easy-mock生成模拟数据

热门文章

最新文章