OpenAPIbasePath プロパティを設定
OpenAPI 2.0basePath プロパティを使用して、paths プロパティに定義された各パスに先行する 1 つ以上のパス部分を提供できます。API Gateway にはリソースのパスを表現する複数の方法があるため、API のインポート機能には、インポート中に basePath プロパティを解釈するための次のオプションが用意されています。ignore、prepend、および split です。
「OpenAPI 3.0basePath は、最上位のプロパティではありません。代わりに、API Gateway は規則としてサーバー変数
-
API に
basePath変数が含まれていない場合、API のインポート機能はserver.url文字列を確認して、"/"以外のパスが含まれているかどうかを確認します。含まれている場合は、そのパスが基本パスとして使用されます。 -
API に含まれる
basePath変数が 1 つだけの場合、API のインポート機能はserver.urlで参照されていなくても、それを基本パスとして使用します。 -
API に複数の
basePath変数が含まれている場合、API のインポート機能は最初の変数のみを基本パスとして使用します。
Ignore (無視)
OpenAPI ファイルの basePath の値が /a/b/c で、paths プロパティに /e および /f が含まれる場合に、次の POST または PUT リクエストがあるとします。
POST /restapis?mode=import&basepath=ignore
PUT /restapis/api_id?basepath=ignore
この場合、API で次のリソースが発生します。
-
/ -
/e -
/f
その効果として、basePath を、これが存在しなかったかのように扱い、宣言された API のすべてのリソースは、ホストに対して相対的に提供されます。これを使用できるのは、たとえば、基本パスを含まない API マッピングや、本番ステージを参照するステージ値を持つカスタムドメイン名がある場合です。
注記
API Gateway は、定義ファイルに明示的に宣言されていない場合でも、自動的にルートリソースを作成します。
指定しない場合、basePath はデフォルトで ignore を受け取ります。
Prepend
OpenAPI ファイルの basePath の値が /a/b/c で、paths プロパティに /e および /f が含まれる場合に、次の POST または PUT リクエストがあるとします。
POST /restapis?mode=import&basepath=prepend
PUT /restapis/api_id?basepath=prepend
この場合、API で次のリソースが発生します。
-
/ -
/a -
/a/b -
/a/b/c -
/a/b/c/e -
/a/b/c/f
その効果として、(メソッドなしで) 追加のリソースとして basePath を処理し、宣言されたリソースセットに追加します。これを使用できるのは、たとえば、さまざまなチームが API パートの異なる部分を担当し、basePath が各チームの API 部分のパスの場所を参照できる場合です。
注記
API Gateway は、定義に明示的に宣言されていない場合でも、自動的に中間リソースを作成します。
Split
OpenAPI ファイルの basePath の値が /a/b/c で、paths プロパティに /e および /f が含まれる場合に、次の POST または PUT リクエストがあるとします。
POST /restapis?mode=import&basepath=split
PUT /restapis/api_id?basepath=split
この場合、API で次のリソースが発生します。
-
/ -
/b -
/b/c -
/b/c/e -
/b/c/f
その効果として、最上位のパス部分 /a を、各リソースのパスの先頭として扱い、API 内で (メソッドなしで) 追加のリソースを作成します。これを使用できるのは、たとえば、a が、API の一部として公開するステージ名である場合です。