作者 | 若邪

来源 | juejin.im/post/6871592049485807630

前言

最近发现一个比较好玩的东东,一个不需要 mock 并且匹配正则的接口直接转发到后端地址的小工具。

install

yarn create @lowcoding/mock

start

yarn start

mock server 默认在本地 3000 端口启动,访问 http://localhost:3000/ 即可。

lowcode-mock 默认支持跨域,前端项目中可不必再配置代理,直接请求 lowcode-mock 起的服务即可。

mock

在 src\routes 目录下新建一个 js 文件,将如下内容复制进去保存即可:

import KoaRouter from 'koa-router'import proxy from '../middleware/Proxy'import { delay } from '../lib/util'let Mock = require('mockjs')let Random = Mock.Random
const router = new KoaRouter()router.get('/your-mock-api', (ctx) => {    ctx.body = '你的第一个mock接口'})module.exports = router

使用 vscode 插件 yapi-code ,可直接根据 JSON 数据或者 YAPI 接口定义自动生成 mock 接口以及 mock 数据。

根据 YAPI 生成 mock

复制 YAPI 上接口 id ,比如 https://你的yapi地址/project/869/interface/api/14037 最后面的数字部分

访问创建的 mock 接口,即可拿到随机的 mock 数据:

根据 JSON 生成 mock

复制 JSON 数据,比如:

通过 JSON 数据生成的 mock 接口需要手动修改路由地址。

根据字段类型或字段名称生成特定的 mock 数据

配置 yapi-code:

搜索公众号互联网架构师回复关键字“2T”,获取Java面试题和答案。

配在 package.json 中即可。

"yapi-code.mockKeyWordLike": {        "icon": "Random.image('48x48')",        "img":"Random.image('48x48')",        "image":"Random.image('48x48')",        "code": "200&&number",        "name":"'模糊匹配后生成的mock'"    },    "yapi-code.mockKeyWordEqual": {        "message": "'这是一条精确的mock'",        "total": 200,    },    "yapi-code.mockString": "Random.cword(5, 6)",    "yapi-code.mockBoolean": "Random.boolean()",    "yapi-code.mockNumber": "Random.natural(100,1000)"

根据 json 数据:

const json = {    code: 100,    message: '请求成功',    result: {        list: [            {                code: '注意这是一个字符串的code',                name: '张三',                icon: '',                actived: false,            },        ],        total: 0,    },}

生成如下代码

.get(`xxxxx`, async (ctx, next) => {        const list1 = []        for (let i = 0; i < 3; i++) {            list1.push({                code: Random.cword(5, 6),                name: '模糊匹配后生成的mock',                icon: Random.image('48x48'),                actived: Random.boolean(),            })        }        ctx.body = {            code: 200,            message: '这是一条精确的mock',            result: { list: list1, total: 200 },        }    })

访问 mock 接口即可拿到如下类似数据:

{    "code": 200,    "message": "这是一条精确的mock",    "result": {        "list": [            {                "code": "八别因教者活",                "name": "模糊匹配后生成的mock",                "icon": "http://dummyimage.com/48x48",                "actived": true            },            {                "code": "毛着何工时白",                "name": "模糊匹配后生成的mock",                "icon": "http://dummyimage.com/48x48",                "actived": false            },            {                "code": "县称县单下外",                "name": "模糊匹配后生成的mock",                "icon": "http://dummyimage.com/48x48",                "actived": true            }        ],        "total": 200    }}

延时

import KoaRouter from 'koa-router'import proxy from '../middleware/Proxy'import { delay } from '../lib/util'let Mock = require('mockjs')let Random = Mock.Random
const router = new KoaRouter()router.get('/delay', (ctx) => {    delay(3) // 3 秒后返回结果    ctx.body = 'delay'})

可用于测 loading 效果。

http 异常状态码

router.get('/httpError', (ctx) => {    ctx.status = 401    ctx.body = 'http 401'})

代理

router.get('/proxy', proxy('https://github.com/wjkang/lowcode-mock'), (ctx) => {    ctx.body = 'https://github.com/wjkang/lowcode-mock'})

来自 /proxy 的请求转发到 https://github.com/wjkang/lowcode-mock/proxy ,用于后端接口可联调的时候跳过本地 mock,转发请求到后端接口。

router.all(new RegExp('^/lowcode/mock/(|^$)'), proxy('https://github.com/wjkang/lowcode-mock'))

不需要 mock 并且匹配正则的接口直接转发到后端地址。

源码地址

https://github.com/wjkang/lowcode-mock

关注微信公众号:互联网架构师,在后台回复:2T,可以获取我整理的教程,都是干货。

猜你喜欢

1、GitHub 标星 3.2w!史上最全技术人员面试手册!FackBoo发起和总结

2、如何才能成为优秀的架构师?

3、从零开始搭建创业公司后台技术栈

4、程序员一般可以从什么平台接私活?

5、37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6、滴滴业务中台构建实践,首次曝光

7、不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事

8、15张图看懂瞎忙和高效的区别

9、2T架构师学习资料干货分享

lazy-mock ,一个生成后端模拟数据的懒人工具 1相关推荐

  1. lazy-mock ,一个生成后端模拟数据的懒人工具

    lazy-mock   lazy-mock 是基于koa2构建的,使用lowdb持久化数据到JSON文件.只需要简单的配置就可以实现和json-server差不多的功能,但是比json-server更 ...

  2. 推荐一个生成后端模拟数据的懒人工具:lazy-mock

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 若邪 来源 | https://juejin. ...

  3. 【Pytorch神经网络实战案例】15 WGAN-gp模型生成Fashon-MNST模拟数据

    1 WGAN-gp模型生成模拟数据案例说明 使用WGAN-gp模型模拟Fashion-MNIST数据的生成,会使用到WGAN-gp模型.深度卷积GAN(DeepConvolutional GAN,DC ...

  4. 如何快速在oracle内生成数据,[Oracle]快速生成大量模拟数据的方法

    快速生成大量模拟数据的方法: create table TEST(id integer, TEST_NUMBER NUMBER(18,6)); insert into TEST select i+j, ...

  5. 【Pytorch神经网络实战案例】17 带W散度的WGAN-div模型生成Fashon-MNST模拟数据

    1 WGAN-div 简介 W散度的损失函数GAN-dv模型使用了W散度来替换W距离的计算方式,将原有的真假样本采样操作换为基于分布层面的计算. 2 代码实现 在WGAN-gp的基础上稍加改动来实现, ...

  6. 对某安卓应用进行分析爬取课表数据制作懒人课表(二)

    本章用到的工具有: AndroidStudio(配合xposed进行分析) xposed(对JAVA层的应用进行hook) 任意一款js调试工具,我这边用的是WT-JS 精易编程助手(只是为了使用里面 ...

  7. 对某安卓应用进行分析爬取课表数据制作懒人课表(一)

    搞事情前 安卓模拟器(安卓版本最好为5.0) fiddler(抓包分析,配置fiddler详见:fiddler 抓取https配置) 精易编程助手 反射大师(脱壳用) dex2jar(把dex文件转成 ...

  8. 【Pytorch神经网络实战案例】13 构建变分自编码神经网络模型生成Fashon-MNST模拟数据

    1 变分自编码神经网络生成模拟数据案例说明 变分自编码里面真正的公式只有一个KL散度. 1.1 变分自编码神经网络模型介绍 主要由以下三个部分构成: 1.1.1 编码器 由两层全连接神经网络组成,第一 ...

  9. Apizza-使用 Mock API 生成接口返回数据

    使用 Mock API 1. 什么是Mock API 通过 Mock API事先编写好 API 的数据生成规则,由工具动态生成 API 的返回数据.开发人员通过访问 Mock API 来获得页面所需要 ...

  10. python list转字符串_我用python写了个自动生成给文档生成索引的脚本!懒人智慧...

    我用 python 写了一个自动生成索引的脚本 简介:为了刷算法题,建了一个 GitHub仓库: PiperLiu / ACMOI_Journey ,记录自己的刷题轨迹,并总结一下方法.心得.想到一个 ...

最新文章

  1. 如何通过机器学习还原图像色彩
  2. 完全理解python迭代对象_完全理解Python迭代对象、迭代器、生成器
  3. Python中import模块的两种模式
  4. 网络——发送email(一个简单荔枝)
  5. 【英语学习】【WOTD】largesse 释义/词源/示例
  6. jmeter 非GUI模式下测试报错An error occurred: Unknown arg:
  7. zynq开发系列3:GPIO连接MIO通过按键控制LED灯亮起
  8. linux不同内核驱动移植问题,基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九-2)...
  9. 为什么有时不能正确定位到异常的发生位置?
  10. 【Linux】MySQL常用命令
  11. java如何通过拼音搜索功能_如何实现拼音搜索
  12. 【工具】在idea中使用svn
  13. 基于机器视觉技术的表面缺陷检测技术综述
  14. 《SEM长尾搜索营销策略解密》一一1.3 别只守着核心词,还有更多风景
  15. c语言中双引号是什么作用,C语言中单引号与双引号的区别
  16. hostapd_cli 使用命令
  17. 软件腐化的七个特征之复杂性、重复性、晦涩性(设计模式原则的反面) (《敏捷软件开发》读书总结第三篇)
  18. 嵌入式linux程序加密,基于嵌入式操作系统uClinux实现网络安全加密系统的设计
  19. java 刷题ide,力扣(LeetCode)刷题神器之Vs Code
  20. Breakpoint原理解释

热门文章

  1. Java的BIO,NIO和AIO的区别于演进
  2. Linux命令:修改文件权限命令chmod、chgrp、chown详解
  3. k8s-kubectl进程源码分析
  4. 支付宝——(JAVA)支付测试开发
  5. 面向对象PHP之Clone对象
  6. 利用Python进行数据分析(3) 使用IPython提高开发效率
  7. 【原创】Mac 工作协同之文件共享问题
  8. 探讨SQL Server中Case 的不同用法
  9. Ubuntu18.04 修改IP地址、查看网关、防火墙
  10. Spring Cloud Config服务器