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:latestcommand: /bin/bash -c "npm start"ports:- 7300:7300volumes:# 日志地址,根据需要修改为本地地址- ./logs:/home/easy-mock/easy-mock/logs# 配置地址,请使用本地配置地址替换- ./production.json:/home/easy-mock/easy-mock/config/production.json# 上传文件- ./public:/home/easy-mock/easy-mock/publicrestart: 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 部署为私有化服务,你可以完全掌控模拟数据的生成和管理,同时保障数据的安全性和隐私性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/486902.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React v19稳定版发布12.5

🤖 作者简介:水煮白菜王 ,一位资深前端劝退师 👻 👀 文章专栏: 前端专栏 ,记录一下平时在博客写作中,总结出的一些开发技巧✍。 感谢支持💕💕💕 目…

如何在Ubuntu中利用repo和git地址下载获取imx6ull的BSP

01-设置git的用户名和邮箱 git config --global user.name "suwenhao" git config --global user.email "2487872782qq.com"这里不设置的话后面在第5步的repo配置中还是会要求输入,而且以后进行相关操作都要输入,不妨现在就进行配置…

高德地图3D地图SDK造成ANR问题记录

问题描述: 在新接手的项目中使用到了高德地图的3D的SDK,其依赖导入如下 api com.amap.api:3dmap:latest.integrationapi com.amap.api:search:9.7.0在使用过程中,用到了TileOverlay图层,使用过程中有一下两个问题: 1.在特定的AMAP…

【AI实战项目】基于OpenCV的“颜色识别项目”完整操作过程

OpenCV是一个广受欢迎且极为流行的计算机视觉库,它因其强大的功能、灵活性和开源特性而在开发者和研究者中备受青睐。 学习OpenCV主要就是学习里面的计算机视觉算法。要学习这些算法的原理,知道它们适用于哪些场景,然后通过Python编写代码来…

浅谈网络 | 应用层之云网络隔离GRE/VXLAN

目录 前言GRE 隧道技术VXLANGRE/VXLAN接入云平台 前言 之前提到,为云平台中的租户实现隔离时,常用的策略是基于 VLAN。然而,VLAN 只有 12 位,共支持 4096 个 ID,这在最初设计时看似足够,但随着云计算的快速…

Spark on Yarn安装配置,大数据技能竞赛(容器环境)

Spark on Yarn模式,即把Spark作为一个客户端,将作业提交给Yarn服务,由于在生产环境中,很多时候都要与Hadoop使用同一个集群,因此采用Yarn来管理资源调度,可以有效提高资源利用率。 环境说明: 服…

java+springboot+mysql在线文件管理系统

项目介绍: 使用javaspringbootmysql开发的在线文件管理系统,系统包含管理员、使用员、监察员角色,功能如下: 管理员:使用员管理;监测员管理;留言管理(回复)&#xff1b…

SD Express 卡漏洞导致笔记本电脑和游戏机遭受内存攻击

Positive Technologies 最近发布的一份报告揭示了一个名为 DaMAgeCard 的新漏洞,攻击者可以利用该漏洞利用 SD Express 内存卡直接访问系统内存。 该漏洞利用了 SD Express 中引入的直接内存访问 (DMA) 功能来加速数据传输速度,但也为对支持该标准的设备…

基于单片机的智能灯光控制系统

摘要 现在的大部分的大学,都是采用了一种“绿色”的教学方式,再加上现在的大学生缺乏环保意识,所以在学校里很多的教室,在白天的时候灯都会打开,这是一种极大的浪费,而且随时都有可能看到,这是…

ros项目dual_arm_pick-place(urdf文件可视化查看)

前言 一直想写一些项目的讲解,今天(2024.12.05)可以说正式开始了。 dual_arm_pick-place项目,是关于两个机械臂协同传递物品。 正文 这次的话,给大家讲一下里面的urdf文件。 这篇文章主要来看一下项目中的urdf文件…

springSecurity权限控制

权限控制:不同的用户可以使用不同的功能。 我们不能在前端判断用户权限来控制显示哪些按钮,因为这样,有人会获取该功能对应的接口,就不需要通过前端,直接发送请求实现功能了。所以需要在后端进行权限判断。&#xff0…

【C++笔记】map和set的使用

前言 各位读者朋友们大家好!上期我们讲完了二叉搜索树这一数据结构,这一期我们来讲STL中的map和set这两大容器。这两个容器的底层是红黑树,红黑树的底层是平衡二叉搜索树。 目录 前言一. 序列式容器和关联式容器二. set系列的使用2.1 set类…

IO进程学习笔记

man手册 普通命令。系统调用的函数。库函数。特殊文件。文件格式。游戏。附加的一些变量 IO介绍 I:input 输入 O:output 输出 对文件的输入和输出 输入-》写文件,将文件中的内容写到内存中去 输出-》读文件,将内存中的内容读取到文…

基于STM32的手势电视机遥控器设计

目录 引言系统设计 硬件设计软件设计系统功能模块 手势识别模块遥控信号发送模块控制接口模块控制算法 手势识别算法遥控信号映射算法代码实现 手势识别与处理遥控信号发送系统调试与优化结论与展望 1. 引言 随着智能家居和物联网技术的发展,传统的电视遥控器逐渐…

哈希表实现

哈希概念 哈希(hash)又称散列,是一种组织数据的方式。从译名来看,有散乱排列的意思。本质就是通过哈希函数把关键字 Key 跟存储位置建立一个映射关系,查找时通过这个哈希函数计算出 Key 存储的位置,进行快…

CSS学习记录08

CSS文本颜色 文本颜色 color属性用于设置文本的颜色,颜色由以下值指定: 颜色名-比如“red"十六进制值-比如”#ff0000"RGB值-比如:“rgb(255,0,0)”等。 页面的默认文本颜色在body选择器中定义的。 body {color: bl…

电子商务人工智能指南 6/6 - 人工智能生成的产品图像

介绍 81% 的零售业高管表示, AI 至少在其组织中发挥了中等至完全的作用。然而,78% 的受访零售业高管表示,很难跟上不断发展的 AI 格局。 近年来,电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

R155 VTA 认证对汽车入侵检测系统(IDS)合规要求

续接上集“浅谈汽车网络安全车辆型式认证(VTA)的现状和未来发展”,有许多读者小伙伴有联系笔者来确认相关的R155 VTA网络安全审核要求,基于此,笔者将针对 R155 VTA 每一条网络安全审核细则来具体展开。 今天就先从汽车…

利用Java爬虫按关键字搜索淘宝商品

在当今数字化时代,获取和分析电子商务平台上的商品数据对于市场研究者、数据分析师或个人买家而言是一项非常有用的能力。本文将详细介绍如何利用Java爬虫技术按关键字搜索淘宝商品,并提供相应的代码示例。 1. 爬虫技术简介 爬虫(Web Crawle…

数据结构——B-树

目录 一.常见的搜索结构 二.B-树概念 三.B-树的插入分析及实现 1.插入分析 2.插入实现 1. B-树的节点设计 2.插入key的过程 3.B-树的插入实现 4.B-树的验证 5.B-树的性能分析 四.B树和B*树 1.B树 2.B*树 3.总结 五.B-树的应用 1.索引 2.MySQL索引简介 1.MyIS…