Как собрать несколько ответов API-вызовов в Apache Nifi? - PullRequest
0 голосов
/ 16 февраля 2019

Я должен запустить удаленный API в Nifi и получить ответ типа Json:

{"data":[{...}, {...}, ...],"nextPage":"http://example.com/nextCall"}

Я должен продолжать вызывать API и накапливать «данные», пока nextPage не станет нулевым.
У меня естьреализовал его с помощью атрибутов и DistributedCacheServer, но это не оптимально, поскольку данные содержат около 1000 элементов, и каждый элемент представляет собой Json с несколькими ключами и значениями.
Обновлено 16 февраля 2019 г .:
Этомой рабочий процесс: enter image description here

Это мой многостраничный обработчик:
https://gist.github.com/behrouz-s/01f9fe1c09ac9d54d0adf3cdd011ea1d

1 Ответ

0 голосов
/ 19 февраля 2019

идея:

  1. при вводе у вас есть допустимый json в качестве содержимого (например, null), целевой URL в некотором атрибуте,
  2. точка цикла: установить запрос fragment.identifier=${UUID()}и fragment.count=2
  3. вы передаете этот файл в двух направлениях:
    • фрагмент = 0 идет на слияние и ожидает там второй файл, который будет содержать http-ответ
    • фрагмент =1 проходит через invokehttp
  4. слияние использует двоичный конкат и всегда ожидает 2 файла
  5. , если следующий URL-адрес действителен Перейти к 2

enter image description here

...