使用 PowerApps 休息 API 次通话

Rest API calls with PowerApps

我正在使用 Microsoft PowerApps 和 Microsoft Flow。我正在尝试弄清楚如何从 PowerApps 进行 API 调用并将结果(状态和正文)return 发送到我的应用程序中的文本框等字段。

我可以通过 Flow 发出 HTTP 请求并将它们放入静态文件中,例如 excel 电子表格...等。我也可以从 PowerApps 控件(例如按钮)进行调用,但我只知道如何使用它 return 到 excel 文件之类的东西,而我真的想 return 它到文本框或文本区域。

现在您无法从 PowerApp 访问原始 HTTP status/body。调用 "arbitrary" HTTP 端点的方法是使用您可以使用 Swagger 描述的自定义 APIs。我写了一篇关于如何调用 Azure 函数的快速博客,展示了如何制作一个 swagger 来调用 API:https://powerapps.microsoft.com/en-us/blog/using-azure-functions-in-powerapps/

如果您能阐明您尝试构建的特定场景以查看是否有其他方法,这可能会很好,但想到的一个选项是构建一个自定义 API 来接收 URL 并在服务器端执行 HTTP 请求和 returns 对象中的值,然后您可以在 PowerApps 中轻松访问这些值。

使用 PowerApps 库控件可视化 API (JSON) 响应相对简单。

这样做:

  1. 确保 Flow 在继续之前有正确的 JSON 响应
  2. 向 PowerApp 中的按钮控件添加 ClearCollect(colResponse, myFlow.apiRequest()) 函数
  3. 执行API调用(点击按钮)
  4. 检查 colResponse (View/Collections) 以确保它有内容
  5. 插入空白库控件
  6. 将其 Items 属性 设置为 colResponse
  7. 将 TextBox 控件插入库中
  8. 将其 Text 属性 设置为 ThisItem.<someColumn>

根据您的 JSON 响应的形状(扁平或嵌套 table),您可能需要做一些争论。

您可以关注 3 个方面:

  1. 关于 ClearCollect 函数。

    一个。在 "dig" 到达 Gallery Control

    之前,在 API 响应的末尾添加一些点符号

    b。 示例: ClearCollect(colResponse, myFlow.apiRequest()).someColumn

  2. 在图库控件上 Items 属性

    一个。在 colResponse 到 "dig" 的末尾添加一些点符号到 Collection

    b。 示例: colResponse.someColumn

  3. 在库中的 TextBox 控件上

    一个。将 First() 函数添加到 Text 属性

    b。 示例:`First(ThisItem.someColumn).someColumn2'

    c。 注意:有些JSON模式需要多个First()'s to "dig" into the correct level. `First(First(ThisItem.someColumn).someColumn2).someColumn3'等

请参阅 this video for tips,了解如何在 PowerApps 库中可视化 API 响应。