Skip to Content

REST - JSON arrays (drill downs)

REST – JSON arrays

  • Vinyl can send complex JSON Arrays
  • Makes use of a new option: 'Drill Down'
  • Specify drill down table from the root API Call
  • And work your way down the JSON structure

JSON arrays - GET example

Customer has multiple addresses.

Example record from the Customer table of a Customer with an ID, Name, and an array of 2 Addresses:

Picture 1

On the REST side, if we were to GET from that table it would create:

  1. A Root table where the ID and Name are:

    Picture 2

  2. An Address table with 2 records:

    Picture 3

JSON arrays - POST example

Local customer record that i'd like to post.

  1. A simple Customer table with 1 record that contains an ID and Name:

    Picture 4

  2. An Address table with 2 records that are both linked to that Customer record by the CustomerID:

    Picture 5

JSON arrays - POST endpoint

Set up our POST endpoint as usual.

  • For this example we have provided some sample JSON, which includes our record and our address tables
  • This generates the Tables for the REST Endpoint

Note

Request Body is only available for POST Endpoint, not GET Endpoint.

Picture 6

JSON arrays - API call

Top level API call rule.

  • This rule is inserting the CustomerID and the Name
  • It is targeting the root table, which is customers (post)
  • It is selecting id and name from the CustomerTest table

JSON arrays - API call

Address API call rule.

  • This rule is inserting into customers (post)/addresses
  • It is selecting the Address and ID info from the CustomerAddressTest table

JSON arrays - drill down

Select address as a 'drill down' on top level API call (edge case settings)

  • Now that we have set up those two API Call rules we can tie them together
  • On the root API Call rule there is an Advanced Setting option called Drill Downs

    Picture 9

  • This allows us to specify sub-rules to run

  • In this case, we call Customer_Address_POST, which writes into that Address REST Endpoint table
  • We also configure the Binding

    Picture 10

JSON arrays - result

  • Success!
  • This works with multiple nested tables too
  • Supports simple arrays as well

    • Edge Case Setting on REST Endpoint table
    • "Array Of Primitives"

Picture 11