【问题标题】:Azure Data Factory HTTP connector not returning XML outputAzure 数据工厂 HTTP 连接器不返回 XML 输出
【发布时间】:2021-11-15 09:21:06
【问题描述】:

对于我们的一个客户,我们正试图从一个有点老式的 REST API 中提取数据,该 API 返回一个 XML 响应。我们已经发现 REST API 连接器不能用于此目的,因为它只能处理 JSON 响应。因此,我们切换到 HTTP 连接器,而不是返回数据,然后我们能够将其写入 Azure SQL DB 接收器。奇怪的是 ADF 输出总是 JSON 格式,尽管 API 响应是 XML。

起初我们并不认为这是一个问题,但我只是发现数组处理没有正确完成。如果返回多条记录,一切都很好,但是当 API 只返回一条记录时,数组周围的方括号将被删除,并且 ADF 不再在映射中正确识别它,因为它需要一个数组。因此,单个记录不会写入 SQL 数据库。

我们尝试使用 Content-Type: application/xml 标头来强制输出 XML,但这也不起作用。由于 API 确实返回 XML,因此 ADF 似乎自行将其转换为 JSON,并且没有正确执行。 有什么方法可以使用标准连接器在 ADF 中处理 XML API?我们的团队中没有可以创建自定义连接器的程序员,因此这不是一种选择。任何见解将不胜感激。

【问题讨论】:

  • 我相信 Content-Type:application/xml 的标头将请求正文设置为 xml。您可以尝试添加带有“接受:应用程序/xml”的标题吗?请参阅此链接ibm.com/docs/en/order-management-sw/…
  • 不幸的是使用 Accept: application/xml 也不起作用。

标签: xml azure api azure-data-factory-2


【解决方案1】:

很遗憾,Azure Datafactory 中没有连接器支持带有 XML 响应的 REST API。

恐怕唯一可能的方法是使用Custom ActivityAzure Function Activity 来调用REST API。

您可以使用自己的数据移动或转换逻辑构建自定义活动,并在管道中使用它来向/从服务不支持的数据存储传输数据,或以某种方式转换/处理数据该服务不支持。

DataItch 的原始帖子:ADF V2 从返回 XML 的 REST API 中提取 | Link

【讨论】:

  • 感谢您提供此信息。我有我的怀疑,但很高兴得到证实。我猜是时候开始阅读逻辑应用了...
  • 抱歉,我以为我是通过投票来做到这一点的。我现在已将其标记为已接受。
  • 非常感谢,不用担心 - 学习愉快:)
猜你喜欢
  • 2021-12-29
  • 1970-01-01
  • 2023-01-04
  • 2019-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
  • 2020-03-06
相关资源
最近更新 更多