web-dev-qa-db-ja.com

PowerAppsを使用したRESTAPI呼び出し

私はMicrosoftPowerAppsとMicrosoftFlowで遊んでいます。 PowerAppsからAPI呼び出しを行い、結果(ステータスと本文)をアプリのテキストボックスなどのフィールドに返す方法を理解しようとしています。

Flowを介してHTTPリクエストを作成し、Excelスプレッドシートなどの静的ファイルに入れることができます。ボタンなどのPowerAppsコントロールから呼び出すこともできますが、実際にテキストボックスまたはテキスト領域に戻したい場合は、Excelファイルなどに戻すだけです。

7
Tim

現在、PowerAppから生のHTTPステータス/本体にアクセスすることはできません。 「任意の」HTTPエンドポイントを呼び出す方法は、Swaggerを使用して記述できるカスタムAPIを使用することです。 APIを呼び出すためのSwaggerを作成する方法を示す、Azure関数の呼び出し方法に関する簡単なブログを作成しました: https://powerapps.Microsoft.com/en-us/blog/using-Azure-functions-in -powerapps /

構築しようとしている特定のシナリオを明確にして、他の方法があるかどうかを確認できれば良いかもしれませんが、頭に浮かぶオプションの1つは、URLを受信して​​サーバー側でHTTPリクエストを実行するカスタムAPIを構築することです。そして、PowerAppsで簡単にアクセスできるオブジェクトの値を返します。

PowerApps Gallery Controlを使用してAPI(JSON)応答を視覚化するのは比較的簡単です。

これを行う:

  1. 続行する前に、フローに正しいJSON応答があることを確認してください
  2. PowerAppのボタンコントロールにClearCollect(colResponse, myFlow.apiRequest())関数を追加します
  3. API呼び出しを実行します(ボタンをクリックします)
  4. colResponse(表示/コレクション)を調べて、コンテンツが含まれていることを確認します
  5. 空白のギャラリーコントロールを挿入します
  6. そのItemsプロパティをcolResponseに設定します
  7. TextBoxコントロールをギャラリーに挿入します
  8. そのTextプロパティを_ThisItem.<someColumn>_に設定します

JSON応答の形状(フラットテーブルまたはネストされたテーブル)によっては、ラングリングが必要になる場合があります。

ラングリングに焦点を当てる3つの領域があります:

  1. ClearCollect関数について。

    a。ギャラリーコントロールに到達する前に、API応答に「掘る」ために、この最後にドット表記を追加します

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

  2. ギャラリーコントロールのItemsプロパティ

    a。 colResponseの末尾にドット表記を追加して、コレクションに「掘る」

    b。 例:_colResponse.someColumn_

  3. ギャラリー内のTextBoxコントロール上

    a。 First()関数をTextプロパティに追加します

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

    c。 注:正しいレベルに「掘り下げる」ために複数のFirst()を必要とするJSONスキーマがいくつかあります。 `First(First(ThisItem.someColumn).someColumn2).someColumn3 'など。

PowerAppsギャラリーでのAPI応答の視覚化については、 ヒントについてはこのビデオ を参照してください。

3
SeaDude