Hi everyone,

... my 2 cents:

3. https://github.com/openMF/fineract-client was an earlier effort (don't
remember which community member created it); the Swagger descriptor was
there already for a couple of years (got added to Fineract as a GSoC
project), but we (actually Michael) just recently added a separate module
to the Fineract repo to do this in one build; all in all I'd say they
should be pretty much the same... maybe the one in
https://github.com/openMF/fineract/tree/develop/fineract-client could be a
little fresher given that it's automatically updated when the Swagger file
is updated.

4. Automatic or not... kind of both: the challenge with the current REST
resource classes in Fineract is that pretty much all of them are not type
safe; there's a lot of manual JSON de-/serialization done; in most cases
the HTTP body lands in a String variable first, and as there's no way for
the Swagger annotation processor to detect what's going on in those String
blobs we had to handcraft some mock classes that are only there to give
context/type info to the Swagger annotation processor. This was done that
way to maintain 100% backward Java source compatibility. It should
cover most of Fineract's API, but there are for sure parts that are a bit
out of sync. Note: there's been a discussion to introduce type safety in
the REST resource classes, using Jackson instead of GSON, get rid of those
mock Java type classes and most (if not all) of the handcrafted JSON
de-/serialization... there'll soon be a first PR to try this out with a
small self-contained module (maybe client API or something similar).

5. See my previous point; the Java code generation is fully automatic in
the Fineract repo, but the mock type classes that are used to generate the
Swagger file are handcrafted... if something is missing then it was already
missing in the Swagger file (aka the mock classes).

6. I know that the Fineract client (the one from the Fineract repo) was
used in commercial projects; I have no numbers about volume and performance
though.

Cheers,

Aleks

On Thu, Jan 13, 2022 at 7:03 PM Ed Cable <edca...@mifos.org> wrote:

> Chinmay and Danish,
>
> There is some interest and inquiry coming from users in the
> community regarding the Fineract Client.
>
> I was hoping you all along with some of the past contributors to this
> project like @Aleksandar Vidakovic <chee...@monkeysintown.com> and @Michael
> Vorburger <michael.vorbur...@gmail.com> could help me with some of the
> below questions:
>
> 3. What is the difference between these 2 clients:
> https://github.com/openMF/fineract/tree/develop/fineract-client
> https://github.com/openMF/fineract-client
>
> Are either of these client’s considered production ready?
>
> 4. Is
> https://github.com/openMF/fineract-client/blob/master/swagger-api-spec-file.json
>  hand
> coded or generated?
>
> 5. We have noticed that both fineract-clients only have fullname field
> supported when creating a Fineract Client (the database entity). This has
> led to the conclusion that neither are based off the Fineract-provider
> JAX-RS but are probably hand coded. We are wondering which one is best
> supported now and into the future, or if we should hand code our own client.
>
> 6. Have either client been used in high volume use cases?
>
>

Reply via email to