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

Microservices Engine:custom-response

最終更新日:Jan 08, 2025

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

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