代码之家  ›  专栏  ›  技术社区  ›  Joey Yi Zhao

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

  •  0
  • Joey Yi Zhao  · 技术社区  · 5 年前

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

    enter image description here

    部署到stage(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网关中的路径资源,但它不允许我添加它。

    enter image description here

    0 回复  |  直到 5 年前
        1
  •  2
  •   Asri Badlah    5 年前

    应用程序必须能够在任何路径上接收请求,包括根路径:/。路径为/{proxy+}的API网关资源捕获除根路径之外的所有路径。对根路径进行请求导致来自API网关的403响应,其中包含消息Missing Authentication Token。

    若要修复此遗漏,请将路径设置为/的附加资源添加到API,并将该新资源链接到与现有/{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": ""
                    }
                }
            }
        }
    }
    
    推荐文章