カスタムレスポンスプラグインは、カスタム HTTP ステータスコード、ヘッダー、およびボディを返します。このプラグインを使用して、モックレスポンスを作成したり、特定のステータスコードに対するレスポンスをオーバーライドしたりすることができます。たとえば、スロットリングポリシーがトリガーされたときにカスタムメッセージを返すことができます。
プラグインタイプ
伝送プロトコル関連プラグイン。
フィールド
|
フィールド |
データ型 |
必須 |
デフォルト値 |
説明 |
|
status_code |
number |
任意 |
200 |
カスタム HTTP ステータスコード。 |
|
headers |
array of string |
任意 |
- |
カスタム HTTP レスポンスヘッダー。各キーと値のペアを |
|
body |
string |
任意 |
- |
カスタム HTTP レスポンスボディ。 |
|
enable_on_status |
array of number |
任意 |
- |
カスタムレスポンスをトリガーする HTTP ステータスコード。このフィールドを空のままにすると、元のステータスコードに関係なく、すべてのリクエストにカスタムレスポンスが適用されます。 |
例
モックレスポンスシナリオにおけるカスタムレスポンスの返却
status_code: 200
headers:
- Content-Type=application/json
- Hello=World
body: "{\"hello\":\"world\"}"
この設定は、次のレスポンスを返します。
HTTP/1.1 200 OK
Content-Type: application/json
Hello: World
Content-Length: 17
{"hello":"world"}
スロットリングがトリガーされた際のカスタムレスポンス
enable_on_status:
- 429
status_code: 302
headers:
- Location=https://example.com
スロットリングは通常、HTTP ステータスコード 429 を返します。この設定により、ゲートウェイは代わりに次のカスタムレスポンスを返します。
HTTP/1.1 302 Found
Location: https://example.com
これにより、スロットリングされたリクエストを別のページ (CDN 上の静的ページなど) にリダイレクトします。
スロットリングがトリガーされたときに他のステータスコードを返すには、「モックレスポンスシナリオにおけるカスタムレスポンスの返却」セクションの説明に従ってフィールドを設定してください。
特定のルートまたはドメイン名に対するレスポンスのカスタマイズ
route-a および route-b ルートに次のプラグイン設定を適用します。
body: "{\"hello\":\"world\"}"
*.example.com および test.com ドメイン名に次のプラグイン設定を適用します。
enable_on_status:
- 429
status_code: 200
headers:
- Content-Type=application/json
body: "{\"errmsg\": \"rate limited\"}"
-
route-aおよびroute-bは、ゲートウェイルートの作成時に指定されたルートです。リクエストがルートと一致すると、そのルートに設定されたルールが有効になります。 -
*.example.comとtest.comは、リクエスト内のドメイン名と一致します。リクエストがドメイン名と一致する場合、そのドメイン名に設定されたルールが適用されます。 -
ルールは順番に有効になります。ルールが一致すると、後続のルールはスキップされます。