Schema Parse Bug for Amadeus API

Wappler 2.91
Mac OS X Mojave and Catalina

When I have the JSON returned in an API call to Amadeus, Both the Fetch Schema as well as a manual paste and run of the following is not fully parsed.

{
  "meta": {
    "count": 1,
    "links": {
      "self": "https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=SYD&destinationLocationCode=DXB&departureDate=2020-08-01&returnDate=2020-08-20&adults=1&max=1"
    }
  },
  "data": [
    {
      "type": "flight-offer",
      "id": "1",
      "source": "GDS",
      "instantTicketingRequired": false,
      "nonHomogeneous": false,
      "oneWay": false,
      "lastTicketingDate": "2020-08-01",
      "numberOfBookableSeats": 2,
      "itineraries": [
        {
          "duration": "PT39H15M",
          "segments": [
            {
              "departure": {
                "iataCode": "SYD",
                "terminal": "1",
                "at": "2020-08-01T09:45:00"
              },
              "arrival": {
                "iataCode": "DEL",
                "terminal": "3",
                "at": "2020-08-01T18:35:00"
              },
              "carrierCode": "AI",
              "number": "301",
              "aircraft": {
                "code": "788"
              },
              "operating": {
                "carrierCode": "AI"
              },
              "duration": "PT13H20M",
              "id": "1",
              "numberOfStops": 0,
              "blacklistedInEU": false
            },
            {
              "departure": {
                "iataCode": "DEL",
                "terminal": "3",
                "at": "2020-08-02T16:50:00"
              },
              "arrival": {
                "iataCode": "DXB",
                "terminal": "1",
                "at": "2020-08-02T19:00:00"
              },
              "carrierCode": "AI",
              "number": "915",
              "aircraft": {
                "code": "788"
              },
              "operating": {
                "carrierCode": "AI"
              },
              "duration": "PT3H40M",
              "id": "2",
              "numberOfStops": 0,
              "blacklistedInEU": false
            }
          ]
        },
        {
          "duration": "PT27H20M",
          "segments": [
            {
              "departure": {
                "iataCode": "DXB",
                "terminal": "1",
                "at": "2020-08-20T20:50:00"
              },
              "arrival": {
                "iataCode": "DEL",
                "terminal": "3",
                "at": "2020-08-21T02:00:00"
              },
              "carrierCode": "AI",
              "number": "916",
              "aircraft": {
                "code": "788"
              },
              "operating": {
                "carrierCode": "AI"
              },
              "duration": "PT3H40M",
              "id": "3",
              "numberOfStops": 0,
              "blacklistedInEU": false
            },
            {
              "departure": {
                "iataCode": "DEL",
                "terminal": "3",
                "at": "2020-08-21T13:15:00"
              },
              "arrival": {
                "iataCode": "SYD",
                "terminal": "1",
                "at": "2020-08-22T06:10:00"
              },
              "carrierCode": "AI",
              "number": "302",
              "aircraft": {
                "code": "788"
              },
              "operating": {
                "carrierCode": "AI"
              },
              "duration": "PT12H25M",
              "id": "4",
              "numberOfStops": 0,
              "blacklistedInEU": false
            }
          ]
        }
      ],
      "price": {
        "currency": "EUR",
        "total": "994.27",
        "base": "868.00",
        "fees": [
          {
            "amount": "0.00",
            "type": "SUPPLIER"
          },
          {
            "amount": "0.00",
            "type": "TICKETING"
          }
        ],
        "grandTotal": "994.27"
      },
      "pricingOptions": {
        "fareType": [
          "PUBLISHED"
        ],
        "includedCheckedBagsOnly": true
      },
      "validatingAirlineCodes": [
        "AI"
      ],
      "travelerPricings": [
        {
          "travelerId": "1",
          "fareOption": "STANDARD",
          "travelerType": "ADULT",
          "price": {
            "currency": "EUR",
            "total": "994.27",
            "base": "868.00"
          },
          "fareDetailsBySegment": [
            {
              "segmentId": "1",
              "cabin": "ECONOMY",
              "fareBasis": "UE6MAU6F",
              "class": "U",
              "includedCheckedBags": {
                "weight": 30,
                "weightUnit": "KG"
              }
            },
            {
              "segmentId": "2",
              "cabin": "ECONOMY",
              "fareBasis": "UE6MAU6F",
              "class": "U",
              "includedCheckedBags": {
                "weight": 30,
                "weightUnit": "KG"
              }
            },
            {
              "segmentId": "3",
              "cabin": "ECONOMY",
              "fareBasis": "TE3MAU6F",
              "class": "T",
              "includedCheckedBags": {
                "weight": 30,
                "weightUnit": "KG"
              }
            },
            {
              "segmentId": "4",
              "cabin": "ECONOMY",
              "fareBasis": "TE3MAU6F",
              "class": "T",
              "includedCheckedBags": {
                "weight": 30,
                "weightUnit": "KG"
              }
            }
          ]
        }
      ]
    }
  ],
  "dictionaries": {
    "locations": {
      "DEL": {
        "cityCode": "DEL",
        "countryCode": "IN"
      },
      "DXB": {
        "cityCode": "DXB",
        "countryCode": "AE"
      },
      "SYD": {
        "cityCode": "SYD",
        "countryCode": "AU"
      }
    },
    "aircraft": {
      "788": "BOEING 787-8"
    },
    "currencies": {
      "EUR": "EURO"
    },
    "carriers": {
      "AI": "AIR INDIA"
    }
  }
}

Line 28 of this JSON is where things begin to go missing.

Similar to this bug - API schema editor issue

I notice that the issue occurs at the point where the same set of properties gets repeated continuously, for example - “iataCode”, “terminal” and “at” fields getting repeated across “departure” & “arrival” in your above json. This has to be fixed… If you move “carrierCode” between departure and arrival, it seems to work, similar workaround helped me for now until this bug is fixed…

1 Like