[ 
https://issues.apache.org/jira/browse/NIFI-4332?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16159239#comment-16159239
 ] 

Daniel Chaffelson commented on NIFI-4332:
-----------------------------------------

So the current community method that I have seen is to take the swagger.json 
produced by the build, and run it through the swagger-codegen for your 
preferred language to give a (admittedly, very messy) boilerplate client which 
has all of the DTO etc integrated. It is then up to the developer to arrange 
the calls into the higher level functions - this has formed the basis of 
nifi-config that I linked above and I duplicated it easily in NiPyApi.
It provides a very useful abstraction between business-defined high-level calls 
like 'get the names and IDs of all Process Groups' and 'instantiate this 
template in this PG with these parameters', and all the necessary underlying 
steps in the API.

Essentially I feel like you're already 50%+ of the way there with the language 
independent OpenAPI definition, it would perhaps be fruitful to enhance that? 
Or pick a language to create a client from it in (say, Java or Python as there 
are already efforts available to adopt) but maintain the generative method via 
OpenAPI so other clients are possible.

The problem of course will be that as soon as you produce an official client, 
people will be on to you to add X feature to it even if you specify that it's 
only to enable a few basic functions in a centralised manner. But as you always 
say, 'we accept PRs'.

> Add NiFi Shell for interacting with NiFi REST API
> -------------------------------------------------
>
>                 Key: NIFI-4332
>                 URL: https://issues.apache.org/jira/browse/NIFI-4332
>             Project: Apache NiFi
>          Issue Type: Improvement
>            Reporter: Jeremy Dyer
>            Assignee: Jeremy Dyer
>
> There are several permutations of nifi shells floating around on Github. The 
> fact that so many of these exists tells me its a feature people want. I 
> propose we add a NiFi shell to the official project that people can use for 
> official interaction with the NiFi REST API. While shells are typically not 
> written in Java I feel quite strongly in our case using Java would be the 
> best fit. Using Java would allow us to use reflection on the "nifi-web-api" 
> layer to reflected expected types, paths, responses, etc with minimal coding 
> effort.
> I expect there will be many more features that can be added to this shell but 
> as a minimal starting point the shell should allow an end user to interact 
> with all of the NiFi REST API endpoints defined at 
> https://nifi.apache.org/docs/nifi-docs/rest-api/index.html



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to