部署自己的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换成我们自己团队的,把里面的一些不经常用的入口屏蔽了。在里面增加一些其他操作都是可以的,别把应用搞崩即可。     我们改造完成之后,重新打包,更新服务就可以看到效果了。
相关文章
|
3月前
|
人工智能 测试技术 API
Eolink创建临时服务mock接口数据——无限制那种非常带劲
Eolink创建临时服务mock接口数据——无限制那种非常带劲
25 1
|
7月前
|
前端开发
什么是 Mock 测试?掌握 Mock 测试的核心原理
Mock 的意思就是,当你很难拿到源数据时,你可以使用某些手段,去获取到跟源数据相似的假数据,拿着这些假数据,前端可以先行开发,而不需要等待后端给了数据后再开发。
|
7月前
|
XML 前端开发 测试技术
【前端小技巧】如何使用 Eolink Apilkit 调用 Mock ?
在开发过程中,进度比较赶的情况下,前端人员当页面写完时,后台的接口还没写完,等要交付的时候后端才把接口给你,这个时候就很尴尬。 这个时候 Mock 就可以很好的解决这个问题,前端团队可以在 API 还没开发完成的情况下,借助 Mock API 实现预对接,加速开发进程。测试团队可以通过 Mock API 解决不必要的系统,完成集成测试。 Eolink Apikit 为前端工程师提供 API 文档管理,快速接口测试,以及 Mock API 创建与调用,及查看文档变更历史的能力。有助于前端工程师快速查看 API 文档详情与历史记录,快速生成和使用 Mock API 提前进行页面效果验证。
33 0
|
5月前
|
JavaScript 数据安全/隐私保护
|
6月前
|
前端开发
使用concurrently模块-同时启动react项目和mock模拟接口
使用concurrently模块-同时启动react项目和mock模拟接口
42 0
|
前端开发 JavaScript 测试技术
【Eolink Apikit】Mock 解决方案
在开发过程中,由于后端与前端并行开发,或者前端需要等待后台开发,难以保证对接效率,同时即使用开发好的 API 对接,也有可能一个 API 不通就阻塞了整个软件的对接工作。同时对软件的敏感度也很高,一不小心就可能导致整个软件不能正常工作。并且界面之间存在着严重的相互依赖关系,产生的业务逻辑非常复杂,这些都会对软件的开发效率产生很大的影响。 所以学习如何利用最好的 Mock 数据是很关键的。这样做会降低前端开发者的工作量,降低开发费用,提高开发效率。 以下是一些常见的 Mock 方法,我们可以根据具体的场景和条件来进行选择和配置。最关键的是要知道如何去做,并从中挑选出最适合自己的方式。
240 0
【Eolink Apikit】Mock 解决方案
|
数据可视化 前端开发 Java
Mock工具介绍,为什么使用Mock?
Mock工具介绍,为什么使用Mock?
460 0
部署自己的MOCK(二)
本文适合团队内部没有MOCK服务,对mock有实际需要的小伙伴。
|
前端开发 JavaScript 数据可视化
如何通过mock数据提高前端开发效率?
我们在做项目开发的过程中,因为是同步开发,所以前端会有等后端接口的情况。为了前后端并行开发,我们一般会要求后端开发人员先定义好接口文档。这样前端通过模拟数据,就能顺畅地进行前端业务逻辑的开发了。
109 0
如何通过mock数据提高前端开发效率?
|
开发框架 JSON 前端开发
接口自动化测试之Mock
  在某些时候,后端在开发接口的时候,处理逻辑非常复杂,在测试的时候,后端在未完成接口的情况下该如何去测试呢?   我们需要测试,但是有些请求又需要修改一下参数,或者改变一下request实现的方式,比如修改状态码,产生的图片要进行替换,或者是替换执行文件等
448 0