将一个 Http 请求的响应数据传递到 Azure 逻辑应用程序中的另一个 Http 请求

Pass response data of one Http request to another Http request in Azure Logic Apps

我正在构建一个逻辑应用程序,我需要将一个 Http 请求的响应数据传递给 Azure 逻辑应用程序中的另一个 Http 请求。

第一个 Http 请求是 POST 方法并返回此数据。

{
  "ID": "892069751085535232",
  "Name": "Test",  
  "source": "retailcloud",
  "metadata": {
    "OrderID": "894",
    "DeviceID": "123"
  }
}

下一个将再次POST请求类似这样的数据。

{
  id: response.id,
  order_id: response.metadata.OrderId
}

如何在这里传递Id和OrderId?比如我需要在这里使用哪些 Logic 应用内置功能?

这里我使用了 2 个连接器,一个是 When HTTP request is received,另一个是 HTTP 连接器。

为了使您的属性可用于下一个连接器,我只是添加示例有效载荷。

然后将您的示例负载粘贴到该区域并单击完成。您将为您的有效负载生成一个架构

然后添加 Http 连接器并添加方法和 url。要传递 ID 和 OrderID 属性,您需要将属性添加到单击 Dynamic Contents.

时自动生成的正文中

假设您的第一个 HTTP 操作称为 HTTP1,第二个 HTTP 操作称为 HTTP2.

您有 2 个选择。

  1. 在它们之间添加一个Parse JSON动作,使用HTTP1的输出作为内容,并使用样本payload生成schema。然后您可以在 HTTP2:

    中使用此操作的动态内容

    { "id": <ID from Parse JSON>, "order_id": <OrderID from Parse JSON> }

  2. 不要添加 'Parse JSON' - 并在 HTTP2:

    的正文中使用表达式而不是动态内容

    { "id": <body('HTTP1')?['ID']>, "order_id": <body('HTTP1')?['metadata']?['OrderID']> }

忽略上面示例中的尖括号 - 将它们替换为实际的动态内容或根据需要替换为表达式。