Mock API 是如何在开发中发光发热的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
vocalman
V2EX    程序员

Mock API 是如何在开发中发光发热的?

  •  
  •   vocalman 2018-04-09 10:56:28 +08:00 2422 次点击
    这是一个创建于 2795 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在长期的服务过程中,我们经常会遇到前来咨询的用户与我们反馈以下这种情况:咨询者是一个前端人员,在项目开发的过程中需要与后端进行对接,遇到后端还没完成数据输出的情况下,他只好写静态模拟数据,在遇到大型项目的情况下,数据冗长、代码复杂、多样的数据类型包括 IP、图片,地址,函数等,在极短的项目周期及验收时间下,手动修改模拟数据显得一点都不现实。

    对于这样的问题,其实 eoLinker 提供了目前最佳的解决方案:Mock API

    使用 Mock API,前后端人员只需要定义好接口文档就可以开始并行工作;后端之间的接口耦合和测试中未准备好的依赖接口也能被 Mock 解决,不会出现团队互等的情况。这样的话,越早开展开发自测,提前了发现、修复缺陷的时间,也有效地保证整个产品质量以及进度。

    eoLinker 提供了两种模拟 API 的方式,基础 Mock 以及高级 Mock,那应该怎么使用 eoLinker 的 Mock 呢?基础 Mock 和高级 Mock 的区别是什么呢?

    在 eoLinker 中,基础 Mock 也称简易 Mock,提供了以下功能:

    1、支持 HTTP、HTTPS

    2、支持 RESTful 风格 API

    3、支持对请求方式进行校验(免费版为默认开启,专业版可针对项目设置关闭)

    4、支持模拟 HTTP 状态码

    5、支持真实的前置 URL 全局替换掉 Mock 请求的前置 URL

    6、支持对请求参数进行校验(专业版)

    而高级 Mock 除了拥有基础 Mock 的功能之外,还具备以下功能:

    7、支持根据 mockjs 规则生成 mock 数据,支持自定义 js 函数

    8、支持根据在高级 MOCK 中设定的生成规则&属性值重新构造 MOCK

    (专业版)

    其中的 3、6、8 功能点,需前往专业版 AMS 中使用。下面我们选择三个重要功能点进行简单叙述。

    1、支持设置返回结果的生成规则,支持 MockJS:

    Mock.js 由于能拦截并模拟 ajax 请求,因此用 Mock.js 模拟后端数据变得异常简单:

    结合上述场景来看,eoLinker 通过支持 MockJS 将能解决以下所有问题。

    1、文档没有事先定义,开发过程,后端人员可能存在口头讲述,但是和实际返回数据不一样的情况,而 eoLinker 高级 mock 本身就规范了这种行为,高效协作不是问题。

    3、想要尽可能还原真实的数据,不用编写更多代码,也不用手动修改模拟数据。

    直接模拟后台数据返回,事半功倍。

    4、不担心例如 IP,随机数,图片,地址等特殊的格式多重收集,丰富的格式支持省下大量时间。

    5、eoLinker 的 MOCK 还支持自定义函数和正则等复杂的数据类型,方便拓展各类更多数据类型。

    正因如此,eoLinker MockAPI 支持 MockJS,解决了前后端开发中的数据模拟问题,大幅提升了开发的工作效率。

    2、对请求参数进行校验:

    这是高级版中的功能,eoLinker 考虑到,开发过程中,有很多后端接口都会对参数进行校验的,确认哪些接口参数是必传,哪些接口参数是非必传。而前端开发调用的是 Mock 接口,从协助的角度上看,Mock API 是模拟后端接口返回参数协作前端开发,那么对参数校验的功能也就十分必要,这样子才能模拟最真实的后端接口,更好地协助前端开发。eoLinker 支持对请求参数进行校验,确定好这些接口参数是否必传,这样子就不会漏传某个参数了,行之有效的避免了冗余的工作量。

    3、支持每次请求随机生成返回结果:

    这同样是高级版中的功能,eoLinker 认识到,随机生成返回结果的功能是必要的功能,因为接口每次返回的参数的值是不同的,所以随机生成可以使模拟的返回结果更真实。

    接下来就是高级 Mock实际教程部分。

    1、编辑 Mock 数据 进入 接口编辑页面,点击上方 高级 Mock 选项卡,进入到 Mock 设置页面:

    注意:

    Mock 的填写依赖于接口文档中的返回参数,如果进入 Mock 设置页面发现没有可以设置的字段,请返回 基础信息 选项卡完善接口的返回信息;

    MockAPI 支持 Mockjs 语法,了解相关语法教程请前往: http://Mockjs.com/;

    使用步骤:

    1.返回参数填写相关键值对,若拥有层级结果,请用 两个英文右箭头 >>或者:: 表示层级:

    根据 Mockjs 示例进行拆分填写。以下图 红框 部分进行讲解:

    name 对应列表字段名;

    min-max 对应列表生成规则;

    string 对应列表属性值,使用需搭配 @Mock=使用,如 @Mock=’★’

    将上图的 Mock 语法写入:

    **注意:**红色框部分为设置整体返回结果类型,支持两种( object/array ),生成规则及属性值同样对应 Mockjs 语法

    2、调用 MockAPI

    进入接口详情页,点击上方的 Mock 标签,在下方的 Mock 部分可以看到有 Mock API 的请求地址,复制该地址即可访问 Mock API 得到虚拟数据:

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     981 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 22:38 PVG 06:38 LAX 14:38 JFK 17:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86