NiFi: Какой процессор я бы использовал для подключения к стороннему API, требующему 3 учетных элемента?

1

Параметры настройки GetHTTP-процессора выглядят так, как будто они будут работать для подключения к стороннему API. Мне нужно отправить имя пользователя (доступно), пароль (доступно) и третье строковое значение, которое представляет имя базы данных. Когда ответ (json) вернется, он будет содержать идентификатор сеанса, который мне позже понадобится для любых других вызовов API (javascript). Существует опция "нового свойства" для этого процессора, который, как я думал, я могу использовать для строки базы данных, однако, похоже, он ищет определенный тип свойства. Предупреждающее сообщение, которое я получаю, содержит: "база данных", проверенная против "mydatabasename", недопустима, потому что "база данных" не поддерживается. Любой совет? Кроме того, как только ответ вернется, как мне сохранить идентификатор сеанса от него для всех последующих вызовов API?

Теги:
apache-nifi

1 ответ

5
Лучший ответ

GetHTTP принимает динамические свойства, которые будут переданы в качестве заголовков HTTP-запросов на сервер. У меня не было никаких проблем с добавлением динамического свойства, называемого database в NiFi 1.2.0, но я считаю, что это относительно недавнее дополнение, которое может быть недоступно в более ранних версиях. InvokeHTTP может быть альтернативой.

Повторное использование идентификатора сеанса требует разбора идентификатора сеанса из ответа и атрибута потока потока NiFi. В зависимости от типа контента, который вы возвращаете, обычно это делается с помощью ExtractText, EvaluateJsonPath или аналогичного процессора.

Последующие процессоры GetHTTP или InvokeHTTP должны быть настроены так, чтобы иметь динамическое свойство для идентификатора сеанса, при этом значение, заданное для использования языка экспрессии NiFi, использует атрибут flowfile, например ${sessionid}.

  • 1
    GetHTTP является более старым процессором и изначально был разработан для перемещения специфичных для NiFi данных между экземплярами. Хотя он, вероятно, все еще будет работать нормально, InvokeHTTP является более новым и более полнофункциональным процессором для этого InvokeHTTP использования.
  • 0
    @ James / @ Andy, спасибо большое за совет. Я буду работать с этой информацией. После того, как я посмотрю, что работает для меня, я опубликую свои выводы здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню