В процессоре NiFi 'InvokeHTTP' где вы пишете тело запроса POST? - PullRequest
0 голосов
/ 18 декабря 2018

Перед публикацией этого вопроса о Apache NiFi InvokeHTTP я рассмотрел все остальные вопросы и ответы на них, но я все еще не уверен в том, какой лучший поток у меня должен быть.Моя ситуация выглядит следующим образом:

1) От Apache Kakfa я получаю необработанные метаданные.

2) Используя EvaluateJSONPath, я получаю нужный мне атрибут.

3) Используя RouteOnAttribute, я создал 3 маршрута на основе значения атрибута, полученного на шаге 2 выше.

4) Теперь, основываясь на значении атрибута, я хочу решить, следует ли мне идти для GET или для POST или для удаления.

5) Мой вопрос: где / как установить сообщение POST?ПОЛУЧИТЬ сообщение?Удалить тело сообщения?

6) Я могу установить URL-адрес в части конфигурации, предоставленной InvokeHTTP.Но тело сообщения, я не знаю, что это за свойство?или это в поточном файле с использованием ReplaceText?

Я где-то читал, что перед тем, как переадресовать HTTP-запрос Restful POST на InvokeHTTP, у вас должен быть другой процессор, перед которым изменяется содержимое файла потока.

Ссылка: Настройка HTTP POST-запроса от Nifi

Пожалуйста, помогите.Благодарю.С уважением, Йешвант

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

В дополнение к тому, что объяснил Брайан, POST будет использовать содержимое FlowFile в качестве тела сообщения, поэтому, если у вас есть какие-то другие данные, которые вы хотите стереть / преобразовать во что-то, а затем отправить как тело сообщения, вы можете использовать следующеепроцессоры:

  • ExtractText для чтения данных из существующего содержимого FlowFile
  • ReplaceText для удаления существующего содержимого FlowFile и замены его другим

Чтобы установить заголовки для вызовов REST, InvokeHTTP имеет свойство Attributes to Send, которое принимает регулярное выражение, которое будет проверяться на соответствие атрибутам входящих потоковых файлов, и те атрибуты, которые совпадают, принимаются и отправляются в виде заголовка HTTP.

Чтобы добавить новый атрибут в существующий FlowFile, вы можете использовать UpdateAttribute

0 голосов
/ 18 декабря 2018

Для POST тело будет тем, что есть в содержимом файла потока.

a GET и DELETE обычно не имеют тела, поскольку информация обычно предоставляется в URL или параметрах запроса.

...