nifi-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pierre Villard <pierre.villard...@gmail.com>
Subject Re: How to send back a reply from HandleHTTPRequest
Date Wed, 08 Feb 2017 07:44:25 GMT
James,

If you always want to return 200 as HTTP response whatever the request is,
then you could have:
HandleHttpRequest directly linked to HandleHttpResponse with property
status code to 200, and HandleHttpRequest linked to your flow to perform
the expected tasks.

Now let's say that you want to return a response based on the request, then
you can set processors between the HandleHttpRequest and the
HandleHttpResponse and then use the expression language to set the response
code to the value contained by an attribute of the flow file based on the
previous processors. Note that the content of the flow file will be used as
content of the HTTP response.

One example could be to expose a web service to retrieve files from HDFS (a
bit like WebHDFS): the user sends a request with the path of the file to
retrieve, then you link HandleHttpRequest to a FetchHDFS processor, then if
the file exists (success relationship) you can link to a HandleHttpResponse
with code 200 and the user will be able to get the file from HDFS, and if
the file does not exist (or if there is any kind of issue, failure
relationship), you can link the FetchHDFS to a HandleHttpResponse with an
error code 4xx. Obviously you could add some complexity to your workflow:
you could also allow users to send data to HDFS, etc, etc.

Hope this clarify a bit.

-Pierre


2017-02-07 23:51 GMT+01:00 James McMahon <jsmcmahon3@gmail.com>:

> Can the response be a standard http code that is automatically returned by
> the HandleHTTPResponse processor? Also, is it the Handle processor that is
> determining the correct response and sending it back, or a different
> processor? I guess I am still confused because I did not see any provision
> in the configuration for HandleHTTPResponse that sent back an http status.
> -Jim
>
> On Tue, Feb 7, 2017 at 4:08 PM, Aldrin Piri <aldrinpiri@gmail.com> wrote:
>
>> HI James,
>>
>> This would occur via the HandleHTTPResponse.  At a high level, the
>> request flowfile is routed to the HandleHTTPResponse processor.  Of course,
>> any kind of processing could occur between the two points.
>>
>> A simple example can be located on the sample templates page with the
>> Hello_NiFi_Web_Service.xml [1].  In this case, it is performing a very
>> simple replacement of text that is returned to the caller.
>>
>> Please let us know if you have any additional questions.
>>
>> --aldrin
>>
>> [1] https://cwiki.apache.org/confluence/display/NIFI/Example
>> +Dataflow+Templates
>>
>> On Tue, Feb 7, 2017 at 4:04 PM, James McMahon <jsmcmahon3@gmail.com>
>> wrote:
>>
>>> Good evening. I have a number of customer applications that will be
>>> posting content to a NiFi HandleHTTPRequest processor. These apps need an
>>> http reply so that they know status. I can't find in the configuration any
>>> way to do that. I know that I must be overlooking what must be a
>>> commonplace requirement. Can anyone tell me how they configured their
>>> workflow so that it provides a response and status to the request? Thanks
>>> very much. -Jim
>>>
>>
>>
>

Mime
View raw message