すべてのプロダクト
Search
ドキュメントセンター

API Gateway:カスタム応答

最終更新日:Jan 09, 2025

カスタム応答プラグインを使用すると、ステータスコード、HTTP応答ヘッダー、HTTP応答本文などのカスタム応答を設定できます。 カスタム応答プラグインは、モック応答、または特定のHTTPステータスコードが決定された後にカスタム応答を提供するために使用できます。 たとえば、プラグインを使用して、ゲートウェイ調整ポリシーがトリガーされたときに返されるカスタム応答を設定できます。 このトピックでは、カスタム応答プラグインを設定する方法について説明します。

プラグイン型

伝送プロトコル関连プラグイン。

フィールド

項目

データ型

必須 / 任意

デフォルト値

説明

status_code

数値

非対象

200

返されたカスタムHTTPステータスコード。

headers

文字列の配列

非対象

-

HTTPレスポンスのカスタムヘッダー。 キーと値を等号 (=) で区切ります。

body

String

非対象

-

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.comtest.comドメイン名は、リクエストのドメイン名と一致するために使用されます。 クライアント要求がいずれかのドメイン名と一致する場合、一致したドメイン名に設定されているルールが有効になります。

  • 設定したルールは順番に有効になります。 最初のルールが一致する場合、後続のルールは無視されます。