【问题标题】:How can I invoke the AWS API to PutItem into DynamoDB table via url?如何通过 url 调用 AWS API 将 PutItem 放入 DynamoDB 表中?
【发布时间】:2021-01-20 20:46:00
【问题描述】:

所以我正在尝试从我的 AWS API Gateway 执行 PutItem 请求。我试图通过使用路径 /storeid/{username}/{password} 来做到这一点。我已将映射作为 json 完成,API 中的测试运行良好,我看到我的数据显示在我的 DynamoDB 表中,但是当我部署 API 并尝试调用此请求时,我收到以下响应:{“message”:“缺少身份验证令牌"}。此请求没有任何授权或 API 密钥要求。为什么调用时测试有效,但 url 无效。 ps-是的,我输入了正确的网址

请帮忙!

【问题讨论】:

标签: amazon-web-services amazon-dynamodb aws-api-gateway put


【解决方案1】:

需要检查的几件事

  1. 验证在您的方法请求设置中授权设置为无(即不是 IAM)。
  2. 验证您是否已将 API 更改部署到阶段。使用控制台,单击操作 -> 部署 API。
  3. 部署后,当您选择部署到的阶段时,应显示要使用的 URL。验证您使用的是正确的网址。

另外,请注意,将密码放在 URL 路径或查询参数中是一个非常糟糕的主意。考虑将请求正文中的数据作为 POST 发送,并执行 HTTPS 和散列等操作来保护密码。

【讨论】:

  • 对不起,我没有提供这个问题背后的背景。我正在为一个学校项目执行此操作,因此数据将全部由我和我的项目团队组成和使用。我已经多次完成了您的步骤 1 到 3。我仍然收到丢失的令牌消息。我将该方法列为帖子,操作是 PutItem。不知道我还能做什么,我已经研究/尝试了一个星期,但我无法弄清楚。
  • 阅读我在 cmets 中添加的链接上的各种答案,缺少身份验证令牌的原因有很多
  • 另外,如果您将您的操作列为 POST,则在浏览器上点击 URL 将执行 GET 并且不起作用..您如何调用 POST 请求?也许试试Postman
  • 您发送的链接我已经阅读,但不适用于我。如果我将请求更改为 PUT,会有什么不同吗?当我看到一些人们使用它的 youtube 视频时,我会调查 Postman,我只是不知道它是什么。非常感谢您的回复和帮助!!!!
  • PUT 在这里没有什么不同,浏览器 URL 请求默认是 GET,您需要做一些不同的事情来发出“POST”或“PUT”请求。 Postman 应该可以做到这一点,它是测试 REST API 的流行工具,它允许您指定 HTTP 操作,并为您的请求添加标头和正文,而无需编写显式代码进行测试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-05
  • 2015-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多