【问题标题】:How to make AWS REST API return a JSON instead of XML如何让 AWS REST API 返回 JSON 而不是 XML
【发布时间】:2021-07-14 02:54:29
【问题描述】:

在 AWS 中,我在 sqs.us-east-2.amazonaws.com 上调用 ListQueues(通过直接调用 REST API)

响应始终是 XML,在 AWS 文档中搜索我找不到如何获取 JSON。

有什么想法吗?

【问题讨论】:

  • 您不能在您的应用程序中将 XML 转换为 JSON(通过遍历它以获得您想要的东西或使用一些第三方插件)吗?
  • 我不想转换。我希望直接得到一个 JSON 结果
  • 如果您使用 lambda 和 api-gateway...只需从 lambda 响应发送 json
  • 这和api-gateway不一样。我正在调用 AWS 自己的管理 API。和你的命令行工具一样。

标签: amazon-web-services aws-sdk


【解决方案1】:

提供 Accept: application/json 标头,您将获得 JSON 响应。

编辑:AWS 没有太多(任何?)关于返回类型的文档。 我制作了一个 pip 模块,它记录了一些可能的返回类型 作为参考有帮助:https://pypi.org/project/awsxmltojson/

【讨论】:

  • 你试过了吗?还是猜测?
  • 它有效。这是一个空队列的响应,带有对 <queue url>?Action=ReceiveMessage 的 GET 调用:{"ReceiveMessageResponse":{"ReceiveMessageResult":{"messages":null},"ResponseMetadata":{"RequestId":"9e23d5c5-1f81-5868-bade-8d437a2231e8"}}}
  • 这与特定队列调用无关。这是关于 ListQueues API 调用的。
  • 谢谢,我也需要这个。我的软件中已经有 JSON 绑定,所以我更喜欢解析 JSON 而不是 XML。完美运行。
  • 嗯.. 为 ListObjects(v2) REST API 使用 Accept: application/json 标头仍会返回 XML。
【解决方案2】:

无法从 SQS 可用操作中获取 JSON 响应。响应将始终是 XML 数据结构。

为了响应操作请求,Amazon SQS 返回一个 XML 数据 包含请求结果的结构。

来源:https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-api-responses.html

【讨论】:

  • 确实很伤心
猜你喜欢
  • 1970-01-01
  • 2016-07-16
  • 2012-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多