API Gateway AWS 中的资源与方法

10
我正在学习AWS,深入了解API Gateway。但我不清楚API Gateway中资源和方法的区别。我的想法是,方法是资源的一部分,它们面向客户端。而资源则是一个更广泛的类别,涉及更多内容。如果有人能帮助我更轻松、更直观地区分它们,我将不胜感激。我已经阅读了文档,并在自己的YouTube上看了一些视频。
2个回答

13
  • 方法是GET、POST、DELETE等。
  • 资源是url的实际路径。

让我们举个简单的例子:

  • GET /pet/{petId}
  • DELETE /pet/{petId}
  • PUT /pet/{petId}
  • POST /pet/{petId}
  • GET /pet/getAll

我们需要3个资源:

  1. /pet
  2. /pet/{petId}
  3. /pet/getAll

在Api网关中定义它们时,第二个和第三个资源会作为前缀带有 /pet 放在第一个资源下面。

然后根据每个资源下的方法进行定义:

  1. /pet > 在其下没有方法
  2. /pet/{petId} > GET、POST、PUT、DELETE 方法
  3. /pet/getAll > GET 方法

看起来应该是这样的:

enter image description here


当连接AWS Lambda时,Lambda可以处理所有的方法和路径。如果您以这种方式组织代码,就不需要多个连接。您可以使用ANY方法,但是教程总是指示创建单个资源。是否可能在不创建任何资源的情况下进行连接,并且只使用ANY方法,甚至省略方法并直接连接到Lambda以处理所有请求,而无需担心指定资源或方法? - NeilG
@NeilG 是的。您可以通过设置一个代理来实现。这将把任何路径路由到单个 Lambda 函数。 - Balu Vyamajala
谢谢 @Balu。看起来你要么使用代理,要么使用 API 网关。我只是想减少资源的使用。我不想仅仅将 API 网关替换为代理。我宁愿使用 API 网关,因为未来可能会用到一些功能,而且这似乎是 AWS 期望/设计的使用方式。 - NeilG

3
  • 资源 - 我们创建的实际端点,不包括默认url
  • 方法 - 资源(端点)内的HTTP方法(GET、PUT、POST、DELETE)

层次结构可以如下图所示:

enter image description here

enter image description here

在这个图中,黑色方框是资源,红色方框是方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接