Modeling responses

What we need to do with that JSON blob is to generate C# classes from it so that the response can be accessed in Unity. The simplest way to go about this, even before creating our HTTP operation, is to get a sample of the response from tools such as the APIGEE Consolearrow-up-right(defunct) or use Postmanarrow-up-right for your own private APIs.

  • Step 1: Get the JSON Blob

Go to the APIGEE Console for Instagramarrow-up-right(defunct) and select OAuth2 from the Authentication dropdown. Then follow the prompts to allow APIGEE access to your Instagram account. At this point the Authentication dropdown should say ‘instagram-AuthenticatedUser’. From the API Method selection pick the method we have been working with: ‘tags/{tag-name}/media/recent’. Directly in the Request URL you can replace ‘{tag-name}’ with ‘games’ and press Send. Once a response arrives, click the Snapshot button. At the Snapshot screen, click the View Raw link and copy all of the JSON data into the clipboard.

Instagram Response
  • Step 2: Generate C# Classes

With the raw JSON text in our clipboard go to JSONUtils.comarrow-up-right. Clear out the ‘JSON Text or URL’ field and paste in your JSON text. Click Submit. You just generated a C# representation of the JSON data!

Copy the C# code found in the lower pane and paste it below your HTTP operation. Notice that the generated class named ‘Example’ is the root class of the response.

NOTE: Replace all instances of IList to either List or an array.

Step 3: Update Operation

Let’s modify our operation a little and add the following class field.

[hg.ApiWebKit.mappers.HttpResponseJsonBody] public Example Response;

The attribute [HttpResponseJsonBody] evaluates the returned JSON text and maps it to an instance of the Example class.

Instagram Model

It is time to run our operation again. Attach the debugger and place a breakpoint within the ‘on_complete’ block.

Below is the response which we can now use within our app.

Model Debugging

In the next post we will take a look on how to send and receive data with assets such as BestHTTP, UniWeb, UnityHTTP, etc.

Last updated