模擬服務器 Moco 0.10.1 發布
模擬服務器 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。