APIGateway 默认集成不起作用
APIGateway Default Integration not working
我正在使用 AWS CDK 创建我的 API 网关 REST API
我想将 RestApi
默认设置为 return HTTP 404,所以我设置了
this.gateway = new apigw.RestApi(this, "Gateway", {
defaultIntegration: new apigw.MockIntegration({
passthroughBehavior: apigw.PassthroughBehavior.NEVER,
requestTemplates: {
"application/json": `{
"statusCode": 404
}`
},
integrationResponses: [{
statusCode: "404",
responseTemplates: {
"application/json": JSON.stringify({ "message": "Not Found" })
}
}]
}),
defaultMethodOptions: {
methodResponses: [
{
statusCode: "404"
}
]
}
});
// UPDATE:
this.gateway.root.resourceForPath("/foo")
this.gateway.root.resourceForPath("/foo/bar")
....
但是,如果我将 GET
卷曲到 /foo
,我不会返回 HTTP 404,而是返回 403。我错过了什么?
正在阅读 resourceForPath
的 docs(和源代码),默认集成和默认方法选项设置正确。
更新:
我添加了 this.gateway.root.resourceForPath("/foo")
但没有得到 404。
我必须在父资源 (/foo
) 上创建一个 ANY
方法。
const foo = this.gateway.root.resourceForPath("/foo");
foo.addMethod("ANY", this.gateway.root.defaultIntegration, this.gateway.root.defaultMethodOptions)
但是对我来说,如果我必须为每个路径段手动设置方法,这就违背了在 RestApi
上使用默认 integration/method 选项的目的。
我正在使用 AWS CDK 创建我的 API 网关 REST API
我想将 RestApi
默认设置为 return HTTP 404,所以我设置了
this.gateway = new apigw.RestApi(this, "Gateway", {
defaultIntegration: new apigw.MockIntegration({
passthroughBehavior: apigw.PassthroughBehavior.NEVER,
requestTemplates: {
"application/json": `{
"statusCode": 404
}`
},
integrationResponses: [{
statusCode: "404",
responseTemplates: {
"application/json": JSON.stringify({ "message": "Not Found" })
}
}]
}),
defaultMethodOptions: {
methodResponses: [
{
statusCode: "404"
}
]
}
});
// UPDATE:
this.gateway.root.resourceForPath("/foo")
this.gateway.root.resourceForPath("/foo/bar")
....
但是,如果我将 GET
卷曲到 /foo
,我不会返回 HTTP 404,而是返回 403。我错过了什么?
正在阅读 resourceForPath
的 docs(和源代码),默认集成和默认方法选项设置正确。
更新:
我添加了 this.gateway.root.resourceForPath("/foo")
但没有得到 404。
我必须在父资源 (/foo
) 上创建一个 ANY
方法。
const foo = this.gateway.root.resourceForPath("/foo");
foo.addMethod("ANY", this.gateway.root.defaultIntegration, this.gateway.root.defaultMethodOptions)
但是对我来说,如果我必须为每个路径段手动设置方法,这就违背了在 RestApi
上使用默认 integration/method 选项的目的。