使用 PowerApps 进行休息 API 调用
Posted
技术标签:
【中文标题】使用 PowerApps 进行休息 API 调用【英文标题】:Rest API calls with PowerApps 【发布时间】:2016-09-08 20:11:12 【问题描述】:我正在使用 Microsoft PowerApps 和 Microsoft Flow。我试图弄清楚如何从 PowerApps 进行 API 调用并将结果(状态和正文)返回到我的应用程序中的文本框等字段。
我可以通过 Flow 发出 HTTP 请求并将它们放入静态文件中,例如 Excel 电子表格...等。我也可以从 PowerApps 控件(例如按钮)进行调用,但我所知道的只是将它返回到类似 excel 文件的东西,而我真的想将它返回到文本框或文本区域。
【问题讨论】:
【参考方案1】:今天,您无法从 PowerApp 访问原始 HTTP 状态/正文。调用“任意”HTTP 端点的方法是使用可以使用 Swagger 描述的自定义 API。我写了一篇关于如何调用 Azure 函数的快速博客,其中展示了如何大摇大摆地调用 API:https://powerapps.microsoft.com/en-us/blog/using-azure-functions-in-powerapps/
如果您能阐明您正在尝试构建的特定场景以查看是否有其他方法可能会很好,但想到的一个选择是构建一个自定义 API 接收 URL 并在服务器端执行HTTP 请求并返回对象中的值,然后您可以在 PowerApps 中轻松访问。
【讨论】:
您需要使用微软的“FLOW”调用其余的Web服务“HTTP”Action并将响应返回给PowerApps。在流程中,触发器和操作都将是 powerapps 并响应 powerapps。【参考方案2】:使用 PowerApps 库控件可视化 API (JSON) 响应相对简单。
这样做:
-
在继续之前确保流具有正确的 JSON 响应
将
ClearCollect(colResponse, myFlow.apiRequest())
函数添加到 PowerApp 中的按钮控件
执行 API 调用(点击按钮)
检查colResponse
(查看/收藏)以确保其包含内容
插入空白库控件
将其Items
属性设置为colResponse
将 TextBox 控件插入到库中
将其Text
属性设置为ThisItem.<someColumn>
根据您的 JSON 响应的形状(平面或嵌套表),您可能需要进行一些争论。
有 3 个方面可以让您集中精力争吵:
关于ClearCollect
函数。
一个。在其末尾添加一些点符号,以便在 API 响应到达 Gallery Control 之前“挖掘”它
b. 示例: ClearCollect(colResponse, myFlow.apiRequest()).someColumn
在图库控件Items
属性上
一个。在colResponse
末尾添加一些点符号以“挖掘”到集合中
b. 示例: colResponse.someColumn
在图库中的 TextBox 控件上
一个。将First()
函数添加到Text
属性
b. 示例: `First(ThisItem.someColumn).someColumn2'
c。 注意:有些 JSON 模式需要多个 First()
才能“挖掘”到正确的级别。 `First(First(ThisItem.someColumn).someColumn2).someColumn3' 等
请参阅this video for tips,了解如何在 PowerApps 库中可视化 API 响应。
【讨论】:
以上是关于使用 PowerApps 进行休息 API 调用的主要内容,如果未能解决你的问题,请参考以下文章
来自 oauth2 安全休息 Web 服务的 Spring 休息服务 api 调用
在 c# 中 Quickblox 上传文件休息 api 调用给出 400
Spring RestTemplate 配置策略从单个 API 调用多个休息服务