設置「打開」API basePath 屬性 - Amazon API 网关

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設置「打開」API basePath 屬性

Open API 2.0 中,您可以使用basePath屬性來提供一個或多個路徑部分,這些部分位於paths性質中定義的每個路徑之前。由於 API Gateway 有數種表示資源路徑的方法,因此「匯入」API 功能會在匯入期間提供下列選項來解譯basePath屬性:忽略、前面加上和分割。

OpenAPI 3.0 中,basePath 不再是頂層屬性。而是使API用伺服器變數做為慣例。「匯入」(Import) API 功能提供與匯入期間解譯基準路徑相同的選項。基本路徑會依下列所述進行識別:

  • 如果API不包含任何basePath變數,則「匯入」API 功能會檢查server.url字串,看看它是否包含超出的路徑"/"。若是,該路徑會用作基本路徑。

  • 如果僅API包含一個basePath變數,則「匯入」API 功能會將其用作基準路徑,即使在中未參考該變數server.url

  • 如果API包含多個basePath變數,則「匯入」API 特徵僅使用第一個變數做為基準路徑。

Ignore

如果「開啟」API 檔案的basePath值為,/a/b/c且內paths容包含/e/f,則下列POSTPUT請求:

POST /restapis?mode=import&basepath=ignore

PUT /restapis/api_id?basepath=ignore

會產生以下資源API:

  • /

  • /e

  • /f

其效果是將其視basePath為不存在,並且所有聲明的API資源都相對於主機提供服務。例如,當您的自訂網域名稱具有不包含基本路徑和參API照生產階段的 Stage 值的對應時,就可以使用此功能。

注意

API閘道會自動為您建立根資源,即使未在您的定義檔案中明確宣告。

未指定時,basePath 預設會採用 ignore

前綴

如果 OpenAPI 檔案具有 basePath/a/b/c 值,而且 paths 屬性包含 /e/f,則下列 POSTPUT 請求:

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部分,API並且可以參考每個專案團隊零件的路徑位置時,便basePath可以使用此選項。

注意

APIGateway 會自動為您建立中繼資源,即使這些資源並未在您的定義中明確宣告。

Split

如果 OpenAPI 檔案具有 basePath/a/b/c 值,而且 paths 屬性包含 /e/f,則下列 POSTPUT 請求:

POST /restapis?mode=import&basepath=split

PUT /restapis/api_id?basepath=split

會產生以下資源API:

  • /

  • /b

  • /b/c

  • /b/c/e

  • /b/c/f

其效果是將最上層的路徑部分視為每個資源路徑的開頭,並在API本身內建立額外的 (無方法) 資源。/a例如,當a您想要公開作為API.