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 の一部として公開するステージ名である場合です。