瞭解路徑範本
在 API Gateway 中,可以根據路徑範本轉送傳入要求。路徑範本包含三個主要元件:
- 完全比對
- 單一萬用字元比對
- 雙萬用字元比對
下列各節將說明這些元件,以及這些元件在 API Gateway 環境中的運作方式。
完全比對
如果範本路徑沒有任何單一或雙萬用字元區隔 (* 或 **),系統會將其轉換為完全相符的路徑。舉例來說,閘道 API 設定的 OpenAPI 規格可能包含下列部分:
...
paths:
/shelves:
get:
summary: List shelves
...
在這個範例中,閘道只會接受對 /shelves 的要求,不會接受其他路徑的要求。
單一萬用字元比對
如果範本路徑包含變數、單一萬用字元片段 ({var}),或僅限 OpenAPI 2.0 的單一萬用字元片段 ({var=*}),閘道會允許符合下列條件的傳入要求:
- 要求不含額外的正斜線 (
/),因此變數只會比對單一路徑片段。 - 要求至少包含一個字元。
- 如果路徑結尾有尾端斜線,要求可能包含額外的尾端斜線。
舉例來說,閘道 API 設定的 OpenAPI 規格可能包含下列部分:
...
paths:
/shelves/{shelf}/books/{book}:
get:
summary: Retrieve a book
...
在這個範例中,閘道會接受符合下列規則運算式的要求:
^/shelves/[^/]+/books/[^/]+/?$
雙萬用字元比對
如果範本路徑包含以雙萬用字元片段表示的變數 (例如 {var=**}),閘道會允許符合下列條件的傳入要求:
- 要求可包含所有字元,包括正斜線 (/)。
- 要求可包含 0 個以上的字元。
- 如果路徑結尾有尾端斜線,要求可能包含額外的尾端斜線。
舉例來說,閘道 API 設定的 OpenAPI 規格可能包含下列部分:
OpenAPI 2.0
... paths: /shelves/{shelf=*}/books/{book=**}: get: summary: Retrieve a book ...
OpenAPI 3.x
... paths: /shelves/{shelf}/books/{book}: get: