Как представить этот ответ с помощью Dataweave? - PullRequest
2 голосов
/ 07 октября 2019

В моем потоке HTTP-запросчик, который вызывает AmericanFlightsAPI, его первоначальный ответ GET выглядит следующим образом:

[{
"ID": 1,
"code": "ER38sd",
"price": 400.00,
"departureDate": "2016/03/20",
"origin": "MUA",
"destination": "SFO",
"emptySeats": 0,
"plane": {
    "type": "Boeing 737",
    "totalSeats": 150
}

Я хочу отфильтровать эти записи и показать только записи, содержащие рейсы, имеющие пункт назначения "SFO" и«CLE», например:

{
  "flight_ID": 4,
  "code": "rree1000",
  "destination": {
    "destination": "CLE"
  }

Другие поля для отфильтрованного адресата, такие как ID, код также должны быть удалены из ответа. Что такое код Dataweave для достижения этой цели? Фактический API выглядит так: Оригинальный API

1 Ответ

3 голосов
/ 07 октября 2019

Быстрый и простой способ может быть ..

%dw 2.0
output application/json
---
payload filter ((value, index) -> (value.destination == 'SFO' or value.destination == 'CLE')) map {
    "flight_ID" : $.ID,
    "code": $.code,
    "destination": {
       "destination": $.destination
  }
}
...