如何在API网关中设置带有路径参数的端点URL?

Sco*_*ter 4 amazon-web-services aws-api-gateway

我正在尝试在现有设置之前设置API网关。每当我尝试添加带有参数的端点时,都会出现错误。

Invalid mapping expression specified: Validation Result: warnings : [], errors : [Invalid mapping expression parameter specified: method.request.querystring.type]
Run Code Online (Sandbox Code Playgroud)

这是屏幕截图:

在此处输入图片说明

在此处输入图片说明

我究竟做错了什么?

Eva*_*tti 9

为了创建路径参数(这是与查询字符串不同的概念),您需要创建一个带括号的资源,如 中所示{your-parameter-name}

\n

\xe2\x9e\xa1\xef\xb8\x8f路径参数:http://example.com/products/{id}/...

\n

查询字符串附加到 URL 的末尾,如下所示?value=123

\n

控制台实际上给出了如何操作的描述提示:

\n
\n

您可以使用括号添加路径参数。例如,资源路径{username}表示名为“username”的路径参数。将 /{proxy+} 配置为代理资源可捕获对其子资源的所有请求。

\n
\n

操作方法如下:

\n
    \n
  1. 创建一个名为/products
  2. \n
\n

在此输入图像描述

\n
    \n
  1. 现在创建一个具有路径文本(如 )的子资源{product}。这是路径参数。
  2. \n
\n

在此输入图像描述

\n
    \n
  1. 最后,添加一个方法,其中 Endpoint URL 字段将资源参数映射到目标 URL,在我的示例中为https://dummyjson.com/products/{product}。控制台将帮助您提供建议和验证。
  2. \n
\n

在此输入图像描述

\n

就是这样。您现在可以在控制台中测试您的 API 方法,并查看所有内容都已路由到目标端点,包括路径参数。

\n

在此输入图像描述

\n


Adi*_*rya 5

我也有同样的问题。这是您需要做的:

顺便说一句:/number 不是这个例子的一部分

  1. 创建新的API资源。
  2. 转到Method RequestMethod Execution

在此处输入图片说明

  1. 在下添加您的参数URL Query String Parameters。您也可以设置一些参数Required

在此处输入图片说明

  1. 返回Method Execution屏幕(请参见图像编号1),然后单击Integration Request

  2. 现在,您可以在URL下查看/设置(在我的情况下,它是自动创建的)参数Query String Parameters。如果没有,您可以定义它们,如图所示。

  3. 完成所有操作后,单击ActionsDeploy API。您可以在左侧菜单Invoke URLStages标签下。

在此处输入图片说明

有关更多信息,您可以查看此页面(AWS文档),其中对此过程有很好的解释。希望能帮助到你 :)