用Moco在Mac上搭建本地服务端

用Moco在Mac上搭建本地服务端

[toc]

前言

这段时间开发经常遇到这样的问题,UI设计稿出完了,但是服务端后台那边还在做,接口还在写,但我们又不想写死数据,希望能过通过请求接口获取数据来搭建界面。那该怎么办呢?
这样就要用到Moco了,我们可以自己在本地搭建一个服务器写好想要数据,然后我们通过接口get或post请求将数据拿到项目中去使用。

准备工作

在Mac上配置JDK环境,去官网直接下个JDK安装包即可
点击链接下载jar包moco服务端
新建文件夹(命名任意),新建Config.json文件,这个文件用于配置api,里面引用需要配置到服务器的请求文件(后缀必须用.json,并且打开方式建议使用SublimeText打开编辑),新建文件也可以使用使用SublimeText新建。
3103049-ffb2b311f4e5399e

全局文件配置

Moco支持在全局的配置文件中引入其他配置文件,这样就可以分服务定义配置文件,便于管理。在全局文件中引入即可。
1.在localServer文件夹中新建一个login的文件夹;
2.在login文件夹中新建login_request.json文件以及login_response.json文件;
在Config.json中写入

[
   {
   "include" : "login/login_ request.json"
   }
 ]

include是导入文件,我们新建的其它配置文件,都在Config导入进入

其他配置文件

在login_ request.json中写入

 [
{
 "request" :
 {
   "uri" : "/assetApp/login",
   "method" : "get",
   "queries" :
     {
      "username" : "sa",
      "password" : "sa"
     }
 },
 "response" :
 {
   "file" : "./login/login_response.json"
 }
}
]

在login_response.json中写入

[
{
 "status": "OK",
 "code": 200
}
]

开启服务端

打开终端,输入以下内容:

cd <Config.json当前目录>

回车后再输入以下内容:

//8080是端口号,可以是任意数字
单个配置如下:java -jar moco-runner-0.10.2-standalone.jar start -p 8080 -c Config.json
全局配置如下:java -jar moco-runner-0.10.2-standalone.jar start -p 8080 -g Config.json

[注意] 在全局配置下时,需要通过参数 -g 在加载全局配置文件,使用的不是-c了,否则配置文件解析会报错。
出现如下内容表示运行成功

[main] INFO  Server is started at 8080
[main] INFO  Shutdown port is 51372

在浏览器里输入http://localhost:8080/assetApp/login?username=sa&password=sa回车后结果如下:

[
    {
     "status": "OK",
     "code": 200
    }
    ]

说明模拟服务器是可以正常使用的。到此服务器就搭建完毕了。是不是很简单!

下面是POST和GET两种常用的网络数据请求的配置

request请求

有14个固定的属性: method, headers, json, factory, uri, text, cookies, xpaths,json_paths, version, file,queries,path_resource,forms。一定要遵循这些方法。 常用的method(请求方式), headers(heads参数),uri(url地址),file(指定调用的请求文件), queries(请求带参)forms(表单内容)

response响应

有12个固定属性:status, attachment, headers, version, factory, file,text, proxy, cookies,json, latency, path_resource
在本篇文章中用到file,text

Get 方法 不带参数
[
 {
     "request": {
        "method" : "get",
        "uri": "/getMethod"
     },
    "response": {
        "text": "This is a Get Method!"
     }
 }
]

浏览器输入链接http://localhost:8080/getMethod

Get方法 带参数

默认的请求方式是Get,你可以不用写method。

{
     "request": {
        "uri": "/getMethodWithParams",
        "queries": {
             "param1": "1",
             "param2": "2"
        }
     },
    "response": {
        "text": "This is a method with params!"
     }
 }

浏览器输入链接http://localhost:8080/getMethodWithParams?param1=1&param2=2

Post 方法

写一个复杂的带有headers,body的Post 请求方法:

{
     "request": {
        "method" : "post",
        "uri": "/postMethod",
        "headers" : {
             "content-type" : "application/json",
             "sessionid": "e566288ba77de98d"
         },
        "forms" :{
          "name" : "admin",
          "password" : "123456"
        }
     },
    "response": {
        "text": "This is a POST Method!"
     }
 }

参考 Global Settings

-------------本文结束感谢您的阅读-------------