custom-response プラグインを使用すると、カスタム HTTP レスポンスステータスコード、カスタム HTTP レスポンスヘッダー、カスタム HTTP レスポンスボディなどのカスタムレスポンスを設定できます。 custom-response プラグインは、モックレスポンスに使用したり、特定の HTTP ステータスコードが決定された後にカスタムレスポンスを提供したりするために使用できます。たとえば、このプラグインを使用して、ゲートウェイ調整ポリシーがトリガーされたときに返されるカスタムレスポンスを設定できます。このトピックでは、custom-response プラグインを設定する方法について説明します。
プラグインの種類
転送プロトコル関連プラグイン。
フィールド
名前 | データ型 | 必須 | デフォルト値 | 説明 |
status_code | 数値 | いいえ | 200 | 返されるカスタム HTTP ステータスコード。 |
headers | 文字列の配列 | いいえ | - | HTTP レスポンスのカスタムヘッダー。キーと値は等号( |
body | 文字列 | いいえ | - | HTTP レスポンスのカスタムボディ。 |
enable_on_status | 数値の配列 | いいえ | - | カスタムレスポンスを生成するために一致する元のステータスコード。このフィールドを指定しない場合、システムは元のステータスコードを判断しません。 |
設定例
モックレスポンスシナリオでカスタムレスポンスを返す
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このようにして、ブラウザベースの 302 リダイレクトメカニズムが実装され、調整されたユーザーが 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ドメイン名は、リクエスト内のドメイン名と照合するために使用されます。クライアントリクエストがドメイン名のいずれかと一致する場合、一致したドメイン名に設定されているルールが有効になります。設定したルールは順番に有効になります。最初のルールが一致すると、後続のルールは無視されます。