Moco本地服务器的搭建

前言

在开发中我们经常会遇到一些场景,比如说当公司新开发项目或者功能的时候,服务器那边还在搭建中,UI这边已经出图可以做了,我们又不想写一些死数据放在项目中,希望能过通过请求接口获取数据来搭建界面,该怎么办呢?
这样就要用到Moco了,我们可以自己在本地搭建一个服务器写好想要数据,然后我们通过接口get或post请求将数据拿到项目中去使用。

本文使用AFNetworking来做数据请求

首先得配置jdk,环境变量的配置就不多说了,参考mac下jdk环境变量的配置

  1. 点击链接下载jar包moco服务端
  2. 新建一个文件夹,将下载好的jar包更名之后拖拽到该文件夹下
  3. 新建Configs.json文件,这个文件用于配置api,里面引用需要配置到服务器的请求文件(后缀必须用.json,并且打开方式建议使用Xcode打开编辑)

注意不要使用文本编辑器打开编辑,会有符号不识别在运行的时候程序会报错,请使用XCode打开编辑

完成后如下:


Moco本地服务器的搭建_第1张图片
屏幕快照 2018-01-05 下午4.19.31.png

单个文件配置和全局文件配置任选一种

  • 单个文件配置

这种情况下是将所有的接口请求和数据返回都放在一个.json文件中进行

例如:在Config.json中写入数据

[
 {
    "response": {
       "text": "Hello world!"
    }
 },
 {
     "request": {
        "method" : "get",
        "uri": "/getMethod"
     },
    "response": {
        "text": "This is a Get Method!"
     }
 }
]
  • 全局文件配置

Moco支持在全局的配置文件中引入其他配置文件,这样就可以分服务定义配置文件,便于管理。在全局文件中引入即可。
例如:

  1. 在localServer文件夹中新建一个login的文件夹;
  2. 在login文件夹中新建login_request.json文件以及login_response.json文件;

在Config.json中写入

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

如果有多个文件夹的情况下是这样导入的

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

在login_ request.json中写入

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

在login_response.json中写入

[
   {
     "flag" : ture
   }
 ]

文件配置好之后,进行如下操作

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

cd 

回车后再输入以下内容:

//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回车后结果如下:

Hello World!

在浏览器里输入http://localhost:8080/getMethod 回车后结果如下:

This is a Get Method!

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


下面是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¶m2=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

你可能感兴趣的:(Moco本地服务器的搭建)