`

WEB前端开发数据模拟工具JOJO

阅读更多

 

注:图片见压缩包中的word文档!

前端数据模拟工具V1.0(JOJO)

一、什么是JOJO

JOJO是一个简单的数据模拟服务器,可以模拟前端页面与后端数据交互的模拟,类似于MOCOJOJO本身的开发灵感来自于MOCO框架,个人认为MOCO配置相对复杂,需要了解的东西比较多,现在基于MOCOdemo也比较少,而且不支持JSONP的形式!(我所需要的是对应的一个URI我能模拟一个我想要的响应数据这就满足我的要求了)这个基于Java开发的开源项目(支持桌面应用,支持配置文件路径切换和端口切换)!

二、为什么要开发这个工具!

集成,尤其是基于 HTTP 协议的集成——web serviceREST 等,在我们的项目开发中被广泛应用。以前,我们每次都要往 Jetty JBOSS Tomcat 等应用服务器上部署一个新的 WAR。大家都知道,开发部署一个 WAR 的过程是很枯燥的,即使在嵌入式服务器上也是如此。而且,每次我们做一点改动,整个 WAR 都要重新组装。JOJO的出现,正是为了解决这些问题。开发团队只要根据自己的需要进行相应的配置,就会很方便得到一个模拟服务器。而且,由于 JOJO本身的灵活性,其用途已经不再局限于最初的集成测试,比如JOJO可以用于前端开发,JOJO 还可以用于移动开发,模拟尚未开发的服务;以及应用接入数据的模拟!模拟一个完整的 Web 服务器,等等!(对于前端开发的话,可能不需要有web容器的支持,由UED提供简单的DEMO文件夹,再通过接入后端服务将后端数据展示出最终渲染页面,从中就会遇到一些跨域的问题!如果纯粹只是为了这样一个目的解决跨域,因为MOCO中无法提供的JSONP支持,所以也就引燃了开发这个模拟工具的导火线!

 

三、为什么叫工具而不是框架

个人认为只是一个工具!是不是框架不作讨论!

 

四、JOJO这个工具的使用

桌面版

适用于windows系统(经测试)

<!--[if !supportLists]-->1、  <!--[endif]-->先安装好jdk!

<!--[if !supportLists]-->2、  <!--[endif]-->启动服务界面:

直接双击启动或者命令行输入java -jar SimulateDataTool.jar 会出现如下界面:

1)、工具

启动界面

<

工具说明

1Config folder path:配置文件存放路径,默认为SimulateDataTool.jar所在文件夹位置!

2Select Folder:选择配置文件存放路径!

3Server IP…:服务器IP地址:配置必须为所在机器的IP或者为127.0.0.1,默认为127.0.0.1

4Server Port:服务器端口号!为未使用的端口号,默认为8888

5Start Service:启动web监听服务

6Stop Service:停止web监听服务

 

命令行版:

适用于windows系统和unix系统(经测试)

1、 安装好jdk!

2、  启动服务:

命令行输入java -jar SimulateDataTool.jar 127.0.0.1 8888 ,参数为必填项!参数1为监听服务器IP地址,参数2为监听服务器端口号

3、服务启动成功界面


配置文件的编写

1、 Hello World 为例(对于程序员举例亘古不变的名词)

1)、配置文件名称以.json结尾,服务启动的时候程序会扫描对应配置文件路径下的所有匹配*.json格式的文件,读取相关配置!

2)、最基本的参数变量,格式以json格式提供:如:

{

"request":{   //request参数:请求配置参数

      "method":"get",//请求方式  目前支持get  post  默认为get

      "type":"json",//请求类型 jsonjsonp  text  html  当请求为json或者jsonp的时候response返回的内容为{“key:value”}json格式,其中当为jsonp的时候会根据传入的hpjsonpcall或者jsonpcallback两个参数的存在于否生成jsonp对应的函数类似于jsonpcallback({“key”:”value”}); 当请求为text的时候response对应输出的是字符串,如”response”:”<h1>Hello World</h1>”  则最终web请求生成的页面内容为“&lt;h1&gt; Hello World&lt;/h1&gt;”经过转义的内容; 当请求为html的时候response对应输出的是字符串,如”response”:”<h1>Hello World</h1>”  则最终web请求生成的页面内容为原样输出“<h1>Hello World</h1>;若此type参数不作配置,则输出也为html! 默认为html

      "uri":"/mobile/mobileOrder.do",//需要拦截响应的uri请求

      "params":{"param1":"paramValue2","param2":"paramValue2"…} //request请求的参数,暂时对配置请求参数各web请求参数名称进行匹配,暂时不对参数值进行检验,如果名称不匹配则输出错误提示!默认为无参数

},

"response":””||{//response响应参数  request中的type请求类型决定输出

    "status":"success",//success 成功 ,fail 失败 ,login  需要登录  三种状态为标准定义,也可以由需求扩展定义,可以自由发挥

      "msg":"Hello World",  //成功或者失败返回的消息

      "data":{} //其它需要返回的对象  

…}

}

 

<1>Demo1 最简配置

{"request":{

"uri":"/mobile/index.do"

},

"response":"Hello World"

}

<2>Demo2 模拟手机充值返回订单信息

{"request":{

 “method”:”post”,

"uri":"/mobile/index.do",

 “params”:{“mobile”:”13816085314”,”confirm”:”13816085314”,”value”:”50.00”},

“type”:”json”

},

"response":{“status”:”success”,

”msg”:”订单信息获取成功!”,

”order”:{“orderId”:”111”,”orderDate”:”20140815104622”,”value”:”50”…}

“backends”:{“backendcode”:”ccb”,”backendName”:”建行支付方式”}

}

}

 

访问WEB服务

http://127.0.0.1:8888/mobile/mobileOrder.do?mobile=13816085314

协议://IP地址:商品号/uri?params

通过访问不同的URI得到不同的response结果

如:

Typetext


Typejson


Typejsonp


Typehtml


参数名称未匹配


Ngnix配置,模拟真实环境以及https的配置

ngnix配置文件中增加配置:

1、增加模拟数据服务器的监听配置:

    upstream simulateData{

      server 127.0.0.1:8888;

}


2、 80端口监听配置处增加对应应用的访问配置,模拟真实环境数据返回


Ngnix配置之后流程模拟


https的配置

ngnixhttps 443端口:


Ngnix配置之后的参数不匹配错误

 

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics