对于不存在的端点,如何使无服务器返回 404 而不是 403?

Edu*_*ero 6 serverless-framework

我按照创建 Hello World 应用程序的说明尝试了无服务器框架。一切正常,[url]/dev/hello-world按预期使用 json 输出调用返回 200 响应。

默认情况下,对于不存在的端点的响应看起来像是 403 http 状态代码和 json {"message":"Missing Authentication Token"}

我想使用该框架托管一个网站。对于不存在的端点,有没有办法让无服务器返回 404 而不是 403?

小智 6

返回 403 而不是 404 是一个深思熟虑的设计决定

这是许多其他 AWS API(最著名的是 S3)中使用的模式。在 S3 中,如果用户有权查看密钥的存在(通过 ListBucket 权限),将返回 404;否则将返回 403。因为API网关开启了方法级别的权限,我们无法知道是否应该允许用户知道API资源级别的存在,因此默认为403。

您可以选择使用 {proxy+} 模式捕获所有丢失的 API 方法。

events:
  - http:
      path: {proxy+} # catch any path not specified elsewhere
      method: get    # or change to any method if you prefer
Run Code Online (Sandbox Code Playgroud)