如何使 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": ""
}
}
}
}
}
我在 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": ""
}
}
}
}
}