WireMock を使用して Web からの応答を記録および再生するプロキシ サービスを構築しています。私は最近、これら 2 つのモードが別々であることを発見したので、これらのサービスを並行して実行する Docker コンテナの小さなセットを構築しようとしています。
簡単に言うと、記録用に 1 つの WireMock をセットアップし、再生用に (別のポートに) 別のインスタンスを用意することを計画しています。cron でマッピングを定期的にコピーし、reset API 呼び出しを再生インスタンスに送信して、新しい定義をリロードします。
というわけで、現在レコーダーの製作中です。特定のサイトから記録する簡単な方法は次のとおりです。
java -jar wiremock-standalone-2.4.1.jar \
--port 8080 \
--proxy-all="http://www.example.com/" \
--record-mappings \
--verbose
ただし、実際には、送信したものをすべて記録したいのに、長時間実行されるインスタンスを www.example.com にロックします。パラメーターなしで使用--proxy-all
すると機能しません (おそらく WireMock 自体によって発行された、HTTP クライアントで 500 エラーが発生します)。
--proxy-all
一方、省略すると 404 が返されます。これは、おそらく WireMock がどこに移動するかを認識していないためです。したがって、次のようなことをしたいと思います:
--proxy-all=*
これがコマンド ラインでサポートされていると言うドキュメントが見当たらないので、管理 API でこれがサポートされているのだろうか 別の方法は、指定したプロキシ URL で WireMock を停止および再起動する独自の API を構築することですが、それが既に実装されている場合は、車輪を再発明したくありません。
別の質問で述べたように、代わりに Mountebank を使用することも選択肢の 1 つかもしれません。このための API があるようです。しかし、それはもっと複雑に見えます。私は WireMock の 90% を達成しているので、できればそれを使い続けたいと思っています。