モックレスポンス
Chuteは実際のサーバーに到達せずに、マッチしたHTTP/HTTPSリクエストに対してモックデータを返すことができます。これはテスト、開発、またはカスタムレスポンスで不要なコンテンツをブロックするのに役立ちます。
モックルールは[Map Local]セクションで定義されます(レガシーセクション名として[Mock]もサポートされています)。
1つのリクエストに複数のルールを適用できます。URLパターンにマッチした最初のモックが使用されます。
インラインモック形式
インラインコンテンツを含むシンプルなモックレスポンスの場合:
[Map Local]
^http://example\.com/api/status status=200 body={"ok":true}
^http://example\.com/blocked status=403
^http://ad\.com/.* status=200 body="<html></html>" content-type="text/html"
インラインモックルールは、URL正規表現と1つ以上のkey=valueレスポンスパラメータで構成されます。
インラインパラメータ
status: 必須。
status=200
返すHTTPステータスコード。
body: オプション。
body={"result":"mocked"}
返すレスポンスボディ。指定しない場合、空のボディが返されます。
content-type: オプション。
content-type=application/json
モックレスポンスのContent-Typeヘッダー。適切なレスポンスを提供するためにbodyと一緒に使用します。
headers: オプション。
headers=X-Custom:Value1;X-Another:Value2
追加のレスポンスヘッダー。;で区切ります。
Map Local形式
ローカルファイルから、またはbase64エンコードされたコンテンツでモックレスポンスを提供する場合:
[Map Local]
^https://example\.com/api data="/path/to/mock-response.json"
^https://example\.com/page data="/path/to/page.html" header="SGVhZGVyOiBWYWx1ZQ=="
^https://example\.com/pixel base64="R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
Map Localパラメータ
| パラメータ | 説明 |
|---|---|
data="/path/to/file" |
レスポンスボディとして提供するファイルパス。ファイルはリクエスト時に読み取られます。 |
base64="<encoded>" |
Base64エンコードされたレスポンスボディコンテンツ。 |
header="<base64>" |
Base64エンコードされたカスタムレスポンスヘッダー(Key: Value\n形式)。 |
data=またはbase64=の少なくとも1つを指定する必要があります。
テンプレート変数
data=またはbase64=を使用する場合、レスポンスボディはテンプレート変数の置換をサポートします:
| 変数 | 置換後 |
|---|---|
{{url}} |
完全なリクエストURLパス |
{{host}} |
リクエストホスト名 |
{{path}} |
相対URLパス |
{{method}} |
HTTPメソッド |
{{ua}} |
User-Agentヘッダー値 |
モックレスポンスファイルの例(response.json):
{
"requested_url": "{{ "{{url}}" }}",
"host": "{{ "{{host}}" }}",
"method": "{{ "{{method}}" }}"
}
注意: HTTPSリクエストの場合、マッチするホスト名に対してMitM復号が有効になっている必要があります。MitMなしのHTTPSトラフィックに対するモックルールは無視されます。