mock数据的好工具

对于web前端开发来讲,在UI有了基本的模样之后就需要考虑添加数据的问题了,没有数据很多UI的交互效果都不好开发。

Mock数据的工具也有很多很多。这里介绍一个商业化的产品,当然对于大部分的简单应用来讲免费的功能已经足够了。

这款工具叫做Mockaroo,这里主要介绍两个方面的内容,一是数据生成器的一些技巧,用来生成一些比较复杂的mock数据;另一个是它提供的REST API服务,让开发变得更容易更接近最终的产品。

数据生成器

 

1

默认状态下,mockarro会为用户生成一个新的schema,在进行了设置之后,用户可以保存这个schema

Schema描述一个table的结构,每一个元素是一个field,可以定义基本的name,另外是type,这是最基本。

关于Type,这个平台提供了很多默认的type,如下:

 

2

urlip地址这些类型就非常方便,其他的type选项也都挺有帮助的,能加速你mock data的速度,而且mock出来的data语义化也更好,比如你需要name,那么它生成的就真的是各种实际的name,而不是杂乱的字符串,让下一步的开发体验更好一点。

当然build-intype不可能面面俱到,总需要自定义很多东西,在我的使用中碰到了下面几种情况与技巧,可以生成出关系更复杂的数据。

fx函数处理

 

3

这里面可以对随机生成的数据做各种处理,比如此处 ‘Service’ + this, this指向的就是当前的随机数据,处理之后会在前面加上Service_的前缀。其他的函数处理估计还有更加复杂的功能

Regular express

 

4

type设置成regular expression. 就可以按照你的需要生成具有一些约束的数据。比如我的case里,serviceType需要是0,1,2中的一个,这个时候就可以用正则表达 ((0|1|2){1})来实现。

Formula

如果一个field的数据依赖于另一个field的数据,那么就可以通过formula在两个数据之间建立联系。比如希望一个新fieldapiDescribe,等于现有的一个fieldserviceDescribe,就可以如下设置:

 

5

嵌套的对象数据

Web应用中有很多时候都会用到嵌套的对象数据,对于这点,这个平台支持的也不错。比如我当前的schema中有一个数据inputParams,它是本身就是一个对象,包含id, serviceid,paramName等属性。这种情况可以如下设置:

 

6

inputParams设置为JSON Array,然后它的下层属性名按照: inputParams.xxx的方式去写。所有的相关数据就形成了一个嵌套的对象数据。

REST API

这个功能还是很不错的,当然它支持把数据download下来,但是如果能直接接受http请求不是更好吗?这个平台就提供了这个功能,不过貌似只能接受get请求。使用的方法也挺简单,把api_key加到url里就行了。另外把刚刚创建并保存的schema加上就行了。

 

7

Leave a Reply

Your email address will not be published. Required fields are marked *