Skip to main content
wetland
Bronze ⭐️⭐️⭐️
September 9, 2022
Solved

How do i set parameters of rest api in InvokeHTTP of NiFi?

I want to filter my rest api with date range. The rest api has dateFrom and dateTo parameters. I want to set dateFrom to 5 days ago and dateTo to now. How do i set the parameters in NiFi ?

My api looks like the below URL:

https://api.aa/reports/api/order_report/?format=json&dateFrom=&dateTo=

SAMSAL
SAMSALAnswer
Platinum ⭐️⭐️⭐️
September 9, 2022

Hi,

Not sure how you get the URL but if its hard coded in the InvokeHttp Remote URL property , then you can use expression language to set up your parameters as follows:

 

${literal('https://api.aa/reports/api/order_report/?format=json&dateFrom=#DATEFROM&dateTo=#DATETO'):
replace('#DATEFROM',${now():format('yyyy-MM-dd')}):
replace('#DATETO',${now():toNumber():minus(432000000):format("yyyy-MM-dd")})}

 

Notice:

- you can set the date format as desired, in my case I assumed that its in yyyy-MM-dd format.

- To subtract 5 days from the current date you have to convert the date to number , then subtract 5 days in milliseconds (1day = 86,400,000 mls ).

Hope that helps, if it does please accept solution.

Thanks

1 reply

SAMSAL
SAMSALAnswer
Platinum ⭐️⭐️⭐️
September 9, 2022

Hi,

Not sure how you get the URL but if its hard coded in the InvokeHttp Remote URL property , then you can use expression language to set up your parameters as follows:

 

${literal('https://api.aa/reports/api/order_report/?format=json&dateFrom=#DATEFROM&dateTo=#DATETO'):
replace('#DATEFROM',${now():format('yyyy-MM-dd')}):
replace('#DATETO',${now():toNumber():minus(432000000):format("yyyy-MM-dd")})}

 

Notice:

- you can set the date format as desired, in my case I assumed that its in yyyy-MM-dd format.

- To subtract 5 days from the current date you have to convert the date to number , then subtract 5 days in milliseconds (1day = 86,400,000 mls ).

Hope that helps, if it does please accept solution.

Thanks

Translate