1.7. 特定プロダクトのバックエンドパス
バックエンドをプロダクトに追加する場合、バックエンドが特定のプロダクトと通信するのに使用するパスを定義します。このパスは、バックエンドの一部ではありません。
APIcast は、既存プロダクトへのバックエンドの追加 に記載する手順のステップ 4 で指定したバックエンドのパスを使用する API ゲートウェイです。APIcast はリクエストされたエンドポイントパスを前方一致で照合し、指定したパスを使用してトラフィックをバックエンドにリダイレクトします。
バックエンドのパスを定義する際の留意事項は以下のとおりです。
-
バックエンドの 1 つのパスとして、
/
を指定することができます。 - 1 つのプロダクト内では、パスは一意でなければなりません。つまり、1 つのプロダクト内では、同じパスを使用して 2 つのバックエンドを追加することはできません。また、1 つのプロダクトに同じバックエンドを 2 回追加することもできません。
- プロダクトが異なっていれば、1 つのバックエンドに同じパスを指定することができます。
バックエンドパスが機能する仕組みを以下に示します。
- プロダクトに追加されたそれぞれのバックエンドは、指定したパスにマウントされます。
- トラフィックをリダイレクトする前に、プロダクトに対するリクエストの公開 URL からパスが削除されます。
例
プロダクトにバックエンドを追加する以下の設定について考えます。
- バックエンド: Inventory
-
リソースパス:
/list
- プロダクト: Petstore
-
バックエンドパス:
/supplies
この設定で使用される URL は以下のとおりです。
-
公開 URL:
<public-api-domain>/supplies/list
-
プライベート URL:
<private-api-domain>/list
リクエストが送信された際のアクションのフローを以下に示します。
- アプリケーションがリクエストを送信する。
-
リクエストが公開 URL
<public-api-domain>/supplies/list
に送信される。 -
プライベート URL
<private-api-domain>/list
にリダイレクトする前に、バックエンドパスが削除される。 - リクエストが Inventory バックエンドにリダイレクトされる。