首页 > 代码库 > 阿里RAP+fiddler实现app原生应用的cgi数据mock----- (二)添加mock规则,随机返回4中类型(不同长度)的数据

阿里RAP+fiddler实现app原生应用的cgi数据mock----- (二)添加mock规则,随机返回4中类型(不同长度)的数据

##RAP如何生成json数据##

1、页面添加mock规则;直接入库;
2、服务从db中获取对应的规则串,调用mock-min.js解析,生成数据返回给服务;
MockjsRunner.doRenderMockJsRule调用context.evaluateString直接执行mock-min.js,返回对应生成的结果;
3、服务讲回调函数的结果返回给前端;
##RAP如何添加规则##
mock-min.js中对Random.extend进行扩展:

Random.extend({ 
/*随机返回一个随机值,包含null,类型包括String,number,boolean*/
testRandom: function(){ 
/*随机数确定类型*/
var key = Number(Math.floor(Math.random()*10)+2);
/*2~36随机长度字符串*/
var length = Math.floor(Math.random()*36)+1;
var result;
var flag=0;
if(key>0 && key <=3){
flag=1;
}else if(key>3 && key<=6){
flag=2;
}else if(key>6 && key<=9){
flag=3
}
switch(flag){
/*return String类型*/
case 1:
result=Math.random().toString(length);
break;
/*return number类型*/
case 2:
if(key==6){
result=0;
}else{ 
var type = key%2 == 0 ? 1:-1;
result=Math.random()* Math.pow(2,length) * type;
}
break;
/*return boolean类型*/
case 3:
result=key%2 == 0 ? true:false;
break;
/*return null*/
default:
result=null;
}
return result;
}
});

 


###遇到的问题记录###
1、javascript的switch case中,case不支持表达式,只支持基础类型变量;
2、很久不写代码,连基本的判定表达式都写成了数学表达式,wtf;

阿里RAP+fiddler实现app原生应用的cgi数据mock----- (二)添加mock规则,随机返回4中类型(不同长度)的数据