MocoはMockServerのクイックスタートとして
5256 ワード
Moco探索
mocoって何?
シミュレーションサーバを簡単に構築するライブラリortools.
https://github.com/dreamhead/moco
mocoインストール構成
1、jarをダウンロードする
https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/moco-runner-0.11.0-standalone.jar
2、コンパイル運転
[ { "response" : { "text" : "Hello, Moco" } } ]
java -jar moco-runner--standalone.jar start -p 12306 -c foo.json
そしてhttp://localhost:12306訪問しました
3、進級
3.1 Content
[{
"request" :
{
"text" : "foo"
},
"response" :
{
"text" : "bar"
}
}]
アクセスを返します.http://localhost:12306 {
"request" :
{
"file" : "foo.request"
},
"response" :
{
"text" : "bar"
}
}
3.2プロファイル
PS:Mocoはプロファイルの動的ロードをサポートしているので、プロファイルを変更しても追加してもサービスを再起動する必要はありません.
Mocoは、グローバルなプロファイルに他のプロファイルを導入することをサポートします.これにより、サービス定義プロファイルを分割できます.
例えば、2つのプロジェクトBoyとGirlプロジェクトが同じMock Serverを使用する必要がある場合は、boyをそれぞれ定義することができます.jsonとgirl.jsonプロファイルをグローバルファイルに導入します.グローバル構成は次のとおりです.
[ { "context": "/boy", "include": "boy.json" }, { "context": "/girl", "include": "girl.json" } ]
ここにいるよjsonとgirl.jsonでは、次のように定義されます.
//boy
[ { "request" : { "uri" : "/hello" }, "response" : { "text" : "I am a boy." } } ]
//girl
[ { "request" : { "uri" : "/hello" }, "response" : { "text" : "I am a girl." } } ]
この場合、パラメータ-gでグローバルプロファイルをロードする必要があります(-gは3.1 context章でのみ使用されます)
java -jar moco-runner--standalone.jar start -p 12306 -g onecoder.json
起動に成功した後、私たちはそれぞれhttp://localhost:12306/girl/helloおよびhttp://localhost:12306/boy/helloサービスにアクセスすると、対応するreponse結果が得られます.実はグローバルファイルの導入方式には直接includeなどがありますが、OneCoderはcontextという方式がよく使われるべきだと思っています.
Requestパラメータ
requestには自然にパラメータ付きのものが多く、以下のように構成されています.
[{ "request" : { "uri" : "/getBoy", "queries": { "name":"onecoder" } }, "response" : { "text" : "Hey." } }]
上記の構成が一致するurlは、次のとおりです.http://localhost:12306/getBoy?name=onecoderを選択します.つまり、この方法では、開発期間中に一定のテストパラメータとパラメータ値が必要です.
restスタイルurlの場合、Mocoは正規マッチングをサポートします.
[{ "request": { "uri": { "match": "/searchboy/\\w+" } }, "response": { "text": "Find a boy." } }]
この時点で、アクセスhttp://localhost:12306/searchboy/*末尾にパラメータを追加しても一致します.
Getのほか、Post、Put、Deleteなどのリクエストモードは自然にサポートされています.
[{
"request" :
{
"method" : "post",
"forms" :
{
"name" : "onecoder"
}
},
"response" :
{
"text" : "Hi."
}}]
Header、Cookiesなどのリクエスト情報の構成もサポートされています.
3.3 template
0.8バージョンから、Mocoはtemplate機能を提供し、いくつかのパラメータ値を動的に返すことができます.例:
[
{
"request": {
"uri": "/template"
},
"response": {
"text": {
"template": "${req.queries['name']}"
}
}
}
]
urlを使用します.http://localhost:12306/template?name=onecoderアクセスするとonecoderが返されます.これによりtemplateという方法で柔軟にいくつかの値を返すことができます.
3.4 redirect
[{ "request" : { "uri" : "/redirect" }, "redirectTo" : "http://www.coderli.com" }]
3.5 Asynchronous
[
"request":{
"uri":"/event"
},
"response":{
"text":"event"
},
"on":{
"complete":{
"async":"true",
"post":{
"url":"http://another_siter",
"content":"cintent"
}
}
}
]
これにより、/eventへのアクセスは非同期になります.正しいまで待たなければならないhttp://another_siterアクセスが完了すると、結果はresponseに格納されます.
ヘルプWebサイト
https://github.com/dreamhead/moco/blob/master/moco-doc/socket-apis.md https://github.com/dreamhead/moco/blob/master/moco-doc/rest-apis.md https://github.com/dreamhead/moco/blob/master/moco-doc/apis.md