Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rest API calls with PowerApps

I am playing around with Microsoft PowerApps and Microsoft Flow. I am trying to figure out how to make API calls from PowerApps and return the results(Status and Body) to a field such as a text box in my app.

I can make the HTTP requests through Flow and put them in a static file such as an excel spreadsheet...etc. I can also make the calls from a PowerApps control such as a button but all I know how to do with it is return it to something like an excel file, when really I want to return it to a Text Box or Text Area.

like image 478
Tim Avatar asked May 12 '16 19:05

Tim


1 Answers

It is relatively straightforward to visualize API (JSON) responses using a PowerApps Gallery Control.

Do this:

  1. Ensure the Flow has the correct JSON response before proceeding
  2. Add ClearCollect(colResponse, myFlow.apiRequest()) Function to a Button Control in the PowerApp
  3. Execute the API call (click the button)
  4. Inspect colResponse (View/Collections) to ensure it has content
  5. Insert a blank Gallery Control
  6. Set its Items Property to colResponse
  7. Insert a TextBox Control into the Gallery
  8. Set its Text Property to ThisItem.<someColumn>

Depending on the shape of your JSON response (flat or nested table), you may have to do some wrangling.

There are 3 areas to focus your wrangling:

  1. On the ClearCollect Function.

    a. Add some dot notation to the end of this to "dig" into the API response before it hits the Gallery Control

    b. Example: ClearCollect(colResponse, myFlow.apiRequest()).someColumn

  2. On the Gallery Control Items Property

    a. Add some dot notation to the end of colResponse to "dig" into the Collection

    b. Example: colResponse.someColumn

  3. On the TextBox Control within the Gallery

    a. Add the First() Function to the Text Property

    b. Example: `First(ThisItem.someColumn).someColumn2'

    c. Note: There are some JSON schemas that require MULTIPLE First()'s to "dig" into the correct level. `First(First(ThisItem.someColumn).someColumn2).someColumn3' etc.

See this video for tips on visualizing API responses in PowerApps Galleries.

like image 191
SeaDude Avatar answered Nov 02 '22 05:11

SeaDude