nifi-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Chaffelson (JIRA)" <>
Subject [jira] [Commented] (NIFI-4332) Add NiFi Shell for interacting with NiFi REST API
Date Fri, 08 Sep 2017 20:26:00 GMT


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:
>             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

This message was sent by Atlassian JIRA

View raw message