模擬服務器 Moco 0.10.1 發布

gww3 9年前發布 | 7K 次閱讀 Moco

模擬服務器 Moco 0.10.1 發布

  • 使用 httpServer 作為 API,且已經棄用 httpserver ,下一版本中將會刪除 httpserve

  • 文件和路徑資源增加字符集

  • 單位時間延遲(Latency with time unit)和沒有時間單位延遲都被棄用,也將在下一版本中被刪除

  • 日志文件增加字符集

  • 模版作為文件和路徑資源的文件名

變更

本次發布對使用Java API的用戶最大影響在于,原來的 httpserver 已經了,推薦使用httpServer。

    HttpServer server = httpServer(12306);

另外一個廢棄掉的API是沒有TimeUnit的latency,推薦使用有時間單位的latency接口。

    server.response(latency(1, TimeUnit.SECONDS));

以上廢棄的API將會在下一次發布中移除,請盡早更新。

接下來,比較大的變動是增加了字符集,file和pathResource都可以進行字符集的處理。

    server.response(file("gbk.response", Charset.forName("GBK")));

甚至,日志也指定對應的字符集:

    HttpServer server = httpServer(port(), log("path.log", Charset.forName("UTF-8")));

模板在原來對內容處理的基礎上,增加了對文件名的處理:

    server.response(file(template("${var}.response", "var", "foo")));

這樣一來,你可以把更多模板的特性用在文件名上,比如jsonPath、xpath等,也就是說,可以把不同請求應答的結果,放到不同的文件里。當然,你可以把它用在JSON配置文件里:

{
    "response":
    {
      "file":
      {
        "name": {
          "template": {
            "with" : "${var}.response",
            "vars" : {
              "var" : "foo"
            }
          }
        }
      }
    }
  }

這次發布還有一個針對于JSON API的調整,就是現在可以mount的時候,額外增加應答配置,比如像下面這樣:

  {
    "mount" :
    {
      "dir" : "src/test/resources/mount",
      "uri" : "/mount-response",
      "headers" : {
        "Content-Type" : "text/plain"
      }
    }
  }

還有一個針對全局配置的特性,就是配置全局Request,如果你想實現一個全局token,保證每次請求都帶過來,現在,就不必在每個請求上編寫,只要配置一個全局的就好了:

  {
    "request" : {
      "headers" : {
        "foo" : "bar"
      }
    },
    "include": "blah.json"
  }

還有一個實現細節方面的調整,如果在模板里采用了xpath或jsonpath,可能會返回多個值,可以參考freemarker的文檔編寫對多值對象的處理。

更多發布相關信息,請參考Release Notes

 本文由用戶 gww3 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!