部署自己的MOCK(一)

简介: 本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。

一、前言


本文基于开源项目:

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

  

我们在进行新项目开发、或者项目迭代开发,有些时候我们前端先一步开发完页面,就需要等待后端伙伴开发完成才可以联调。如果有个Mock服务我们就可以先一步验证我们页面的功能,提早发现并完成调整优化。 

 

使用Mock的好处有很多,这里就不啰嗦了。    


新项目一般我们直接调用Mock的api url即可,对于一些迭代开发的项目,我们既可以调用之前联调好的自己服务api,同时也可以调用我们的Mock,两者同时访问并不冲突的。有很多种处理方式,例如我们通过url上进行一些特定的处理即可。
 

广东靓仔在18年的时候分享过这方面的内容,这里给小伙伴们重温下。
业界有不少关于MOCK这方面的应用,列举几个:

  • Mock
  • RAP
  • NEI
  • EASY MOCK
  • api blueprint


   严谨的技术团队一般会选择本地部署自己的Mock服务

   这里广东靓仔主要讲EASY MOCK本地部署、以及它的语法


二、easy-mock拥有的特性


  • 支持API代理
  • 便捷的快捷方式
  • 支持协同编辑
  • 支持团队项目
  • 支持RESTful
  • 支持Swagger | OpenAPI规范(1.22.03.0
  • 基于Swagger快速创建项目
  • 支持显示参数和返回值
  • 支持显示类模型
  • 响应数据更加灵活和可扩展
  • 支持自定义响应配置(例如:状态/标题/ cookie)
  • 使用Mock.js模式
  • 支持restc预览API

这些特性都是官方列举出来的,大家有兴趣可以去看官方文档。


三、easy-mock本地部署


   要私有部署easy-mock,我们需要安装Node.jsv8.x,不支持v10.xMongoDB> = v3.4)以及 REdis> = v4.0)。    


具体安装方式大家可以网上找对应的版本进行安装,这里就不展开了。安装完以上三个东东,我们安装最主要的easy-mock,操作如下


$ git clone https://github.com/easy-mock/easy-mock.git
$ cd easy-mock && npm install

 

接着我们配置一下,查找config / default.json或创建config / local.json覆盖某些配置。配置有很多,有兴趣可以自行查看,这里简单的配置参考如下


{
  "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, e.g."5a4495e16ef711102113e500"
    "ips": [] // ip, e.g. "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": "", // Set server to enable LDAP login. e.g. "ldap://localhost:389" or "ldaps://localhost:389"(use SSL)
    "bindDN": "", // Username,e.g. "cn=admin,dc=example,dc=com"
    "password": "",
    "filter": {
      "base": "", // Base where we can search for users,e.g. "dc=example,dc=com"
      "attributeName": "" // e.g. "mail" or "email" etc.
    }
  },
  "fe": {
    "copyright": "",
    "storageNamespace": "easy-mock_",
    "timeout": 25000,
    "publicPath": "/dist/"
  }
}


部署,官方建议使用PM2,操作如下


全局安装PM2

$ [sudo] npm install pm2 -g


通过PM2启动


应该在此步骤之前运行build

$ NODE_ENV=production pm2 start app.js


当我们完成以上操作后,启动服务,在页面访问,会看到以下页面:

image.png

image.png


   当然,我们得做点什么,让页面看起来高大上一点。我们可以对这个页面的改造,比如我们把logo换成我们自己团队的,把里面的一些不经常用的入口屏蔽了。在里面增加一些其他操作都是可以的,别把应用搞崩即可。     我们改造完成之后,重新打包,更新服务就可以看到效果了。
相关文章
|
Ubuntu Linux KVM
分享一些OpenStack的qcow2格式实例镜像
分享一些OpenStack的qcow2格式实例镜像
13660 0
分享一些OpenStack的qcow2格式实例镜像
|
10月前
|
NoSQL 前端开发 MongoDB
Mock神器:Easy-Mock 私有化部署及使用介绍
Easy-Mock 是一个非常实用的模拟数据工具,尤其在前后端分离开发的场景中,可以极大地提高前端开发效率。通过将 Easy-Mock 部署为私有化服务,你可以完全掌控模拟数据的生成和管理,同时保障数据的安全性和隐私性。
588 44
|
Web App开发 域名解析 缓存
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
本文我们主要为大家介绍在 Ubuntu 20.04 上安装 Node.js 和 npm 的三种不同的方式。
162868 7
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
|
7月前
|
NoSQL 数据库 Redis
如何保证MQ幂等性?或 如何防止消息重复消费?
如何保证MQ幂等性?或 如何防止消息重复消费?
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能与大数据的融合之美####
【10月更文挑战第29天】 身处信息技术飞速发展的时代,人工智能与大数据如同两颗璀璨的星辰,在科技的夜空中交相辉映,共同推动着社会进步与变革的浪潮。本文旨在揭开AI与大数据深度融合的神秘面纱,探讨这一融合如何引领技术前沿,激发创新活力,并展望其在未来世界中的无限可能。通过深入浅出的解析,展现技术背后的逻辑与魅力,邀请读者一同踏上这场科技与智慧的探索之旅。 ####
204 2
|
机器学习/深度学习 人工智能 安全
|
JavaScript Java Maven
理解固化的Maven依赖:spring-boot-starter-parent 与 spring-boot-dependencies
理解固化的Maven依赖:spring-boot-starter-parent 与 spring-boot-dependencies
6162 1
|
存储 监控 关系型数据库
DataX 概述、部署、数据同步运用示例
DataX是阿里巴巴开源的离线数据同步工具,支持多种数据源之间的高效传输。其特点是多数据源支持、可扩展性、灵活配置、高效传输、任务调度监控和活跃的开源社区支持。DataX通过Reader和Writer插件实现数据源的读取和写入,采用Framework+plugin架构。部署简单,解压即可用。示例展示了如何配置DataX同步MySQL到HDFS,并提供了速度和内存优化建议。此外,还解决了NULL值同步问题及配置文件变量传参的方法。
8572 5
|
NoSQL 关系型数据库 MongoDB
MongoDB的安装配置及使用
MongoDB的安装配置及使用
4911 0
|
JSON 网络架构 数据格式
Easy-Mock 全解及其详细使用
Easy-Mock 全解及其详细使用
357 0