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 バックエンドにリダイレクトされる。