use*_*997 1 amazon-web-services aws-api-gateway api-gateway amazon-api-gateway
我们正在尝试根据https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html利用 AWS API 网关中的 $default 路径
像这样配置 api 网关,利用$default 作为路由之一
/
/-default
ANY
/api
/{proxy=}
Run Code Online (Sandbox Code Playgroud)
当我们尝试在$default路径和 GET 调用上调用 api 网关时
https://apigateway.amazonaws.com/prod/test
Run Code Online (Sandbox Code Playgroud)
我们假设它会调用默认路径,但它没有
message: "Missing Authentication Token"
Run Code Online (Sandbox Code Playgroud)
但是当我们这样做时
https://apigateway.amazonaws.com/prod/api/test
Run Code Online (Sandbox Code Playgroud)
该API集成时调用
注意:我们已经尝试配置贪婪路径{proxy+}而不是 $default ,因为贪婪路径总是优先并且 /api 路由也被路由到贪婪路径
社区为我们指明正确方向的任何帮助都会有很大帮助
您似乎没有正确设置 API Gateway HTTP API 路由,导致路由无法按预期工作。还要提一下,HTTP API和REST API是不同类型的API 网关 API,因此请确认您已正确配置 API。
作为示例,路由将如何工作,API的路由如下所示:
请求GET https://xxxx.execute-api.xxxx.amazonaws.com/prod/test:路由到$default路径
请求GET https://xxxx.execute-api.xxxx.amazonaws.com/prod/api/test:路由到/api/{proxy+}路径
此外,如果您在 处有一条贪婪路径ANY /{proxy+},那么正如您所提到的,这条贪婪路径将优先于$default路线。但是,ANY /api如果请求与路由匹配,则这不会优先于路由,例如:GET https://xxxx.execute-api.xxxx.amazonaws.com/prod/api:将路由到/api路径而不是/{proxy+}
选择一个阶段后,API Gateway 选择一个路由。API Gateway 使用以下优先级选择具有最具体匹配的路由:
- 路由和方法的完全匹配。
- 匹配具有贪婪路径变量 (
{proxy+})的路由和方法。- 该
$default路线。如果没有路由匹配请求,API Gateway 将返回
{"message":"Not Found"}给客户端。
编辑:
要创建$default路由,只需指定$default创建路由时的路径
| 归档时间: |
|
| 查看次数: |
1512 次 |
| 最近记录: |