如何使 apigateway 转发根路径到集成的 http 端点?

How can I make apigateway forward root path to integrated http endpoint?

我在 AWS 中创建了一个 REST api 网关,并将其配置为将所有请求传递到一个 http 端点。我的配置是

部署到阶段 (dev) 后,它会调用 URL,例如 https://xxxx.execute-api.ap-southeast-2.amazonaws.com/dev

如果我通过附加子路径调用 url,它工作正常:https://xxxx.execute-api.ap-southeast-2.amazonaws.com/dev/xxxxx`,我可以看到它将请求转发到下游 http 端点。但是,如果我调用基础 url: https://xxxx.execute-api.ap-southeast-2.amazonaws.com/dev,它不会转发任何请求。我怎样才能让它在没有任何子路径的情况下与基本调用 url 一起工作?

我厌倦了在 API 网关中添加额外的 / 路径资源,但它不允许我添加它。

应用程序必须能够在任何路径接收请求,包括根路径:/。路径为 /{proxy+} 的 API 网关资源捕获除根路径之外的所有路径。请求根路径会导致来自 API 网关的 403 响应,消息为缺少身份验证令牌。

要修复此遗漏,请将附加资源添加到 API 并将路径设置为 / 并将该新资源 link 添加到与现有 /{proxy+} 中使用的相同 http 端点资源。

更新后的 OpenAPI 文档现在类似于以下代码示例:

{
    "openapi": "3.0",
    "info": {
        "title": "All-capturing example",
        "version": "1.0"
    },
    "paths": {
        "/": {
            "x-amazon-apigateway-any-method": {
                "responses": {},
                "x-amazon-apigateway-integration": {
                    "httpMethod": "POST",
                    "type": "aws_proxy",
                    "uri": ""
                }
            }
        },
        "/{proxy+}": {
            "x-amazon-apigateway-any-method": {
                "responses": {},
                "x-amazon-apigateway-integration": {
                    "httpMethod": "POST",
                    "type": "aws_proxy",
                    "uri": ""
                }
            }
        }
    }
}