有关 API Gateway 如何评估路由规则的示例
下一节显示了有关 API Gateway 如何评估路由规则和 API 映射的四个示例。
示例 1:仅路由规则
在此示例中,自定义域名 https://petstore.example.com
的路由模式设置为 ROUTING_RULE_ONLY
,并具有以下路由规则和优先级。
规则 ID | 优先级 | Conditions | 操作 |
---|---|---|---|
|
10 |
如果请求包含标头: |
目标 API 1 |
|
50 |
如果请求包含标头: |
目标 API 2 |
|
100 |
无 |
目标 API 3 |
下表显示了 API Gateway 如何将之前的路由规则应用于示例请求。
请求 | 选定的 API | 说明 |
---|---|---|
|
目标 API 1 |
请求与路由规则 |
|
目标 API 1 |
API Gateway 按优先级顺序评估所有路由规则。路由规则 尽管请求的条件也与路由规则 |
|
目标 API 2 |
请求与路由规则 |
|
目标 API 3 |
请求与路由规则 |
示例 2:路由规则和 API 映射
在此示例中,自定义域名 https://petstore.diagram.example.com
的路由模式设置为 ROUTING_RULE_THEN_API_MAPPING
,并具有以下路由规则和 API 映射。
规则 ID | 优先级 | Conditions | 操作 |
---|---|---|---|
|
1 |
如果请求包含基本路径 |
调用 |
|
5 |
如果请求包含标头: |
调用 |
下表显示 https://petstore.backup.example.com
的 API 映射。
API 映射 | 选定的 API |
---|---|
|
调用 |
|
调用 |
下图显示了 API Gateway 如何将之前的路由规则和 API 映射应用于示例请求。示例请求汇总在此图之后的表格中。
下表说明了 API Gateway 如何将之前的路由规则和 API 映射应用于示例请求。
请求 | 选定的 API | 说明 |
---|---|---|
|
|
请求与路由规则 |
|
|
请求与路由规则 |
|
|
该请求没有与路由规则 |
|
|
该请求将 API 映射与空路径 |
示例 3:具有多个级别的路由规则和 API 映射
在此示例中,自定义域名 https://petstore.backup.example.com
的路由模式设置为 ROUTING_RULE_THEN_API_MAPPING
,并具有以下路由规则和 API 映射。
下表显示了 https://petstore.backup.example.com
的路由规则。
规则 ID | 优先级 | Conditions | 操作 |
---|---|---|---|
|
10 |
如果请求包含标头: |
目标 API 1 |
|
50 |
如果请求包含标头: |
目标 API 2 |
下表显示 https://petstore.backup.example.com
的 API 映射。
API 映射 | 选定的 API |
---|---|
|
目标 API 3 |
|
目标 API 4 |
下表说明了 API Gateway 如何将之前的路由规则和 API 映射应用于示例请求。
请求 | 选定的 API | 说明 |
---|---|---|
|
目标 API 3 |
该请求没有与路由规则 |
|
目标 API 1 |
请求与路由规则 |
|
无 |
请求与任何路由规则或 API 映射都不匹配。由于没有默认路由规则,因此 API Gateway 会拒绝调用,并向调用方发送 |
示例 4:通配符域名的路由规则
在此示例中,自定义域名 https://*.example.com
是通配符域名。通配符支持路由回同一个域的所有子域名。以下示例路由规则更改了这一行为,以支持子域名使用 Host
标头路由到不同的目标 API。
下表显示了 https://*.example.com
的路由规则。
规则 ID | 优先级 | Conditions | 操作 |
---|---|---|---|
|
10 |
如果请求包含标头: |
目标 API 1 |
|
50 |
如果请求包含标头: |
目标 API 2 |
|
500 |
无 |
目标 API 3 |
下表显示了 API Gateway 如何将之前的路由规则应用于示例请求。
请求 | 选定的 API | 说明 |
---|---|---|
|
目标 API 1 |
|
|
目标 API 2 |
|
|
目标 API 3 |
这与“捕获全部”路由规则 |