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

Aleksandar Vidakovic commented on FINERACT-1212:
------------------------------------------------

[~vorburger] I don't think that we'll get much help of any "magic" toggles that 
we didn't consider yet. There might be some, sure. Some of these auto-numbered 
functions might come from the fact that we have multiple similar REST endpoints 
that are handled by functions with the same name (just different parameters) 
and somehow this creates a name conflict in the client code.

But the real issue here is the way the whole REST API layer in Fineract is 
built. All type safety on those REST endpoint functions in the resource classes 
is removed, because the JSON body is passed as a String variable and then 
manually parsed afterwards. Nowadays, the issues that forced the original 
authors to do it that way could be solved fairly easily (I'm pretty sure it was 
because the JSON parser blew up in a couple of cases where it could not 
automatically decide how to de-/serialize... e. g. generic type parameters). 
Attacking that would be still a major project, because of the amount of 
classes/functions involved and the impact it has overall.

So, for now there is no way around to tackle this manually case by case and 
hope we find a switch that fixes the naming issue at least partially. There are 
a couple of helper classes that are just there to "bring back" type safety for 
the Swagger annotations (those classes are just used to generate the yaml 
file); I guess that's were we need to attack this; the bad news here is that if 
someone changes something in the manual parser stuff (e. g. adds/removes an 
attribute) then this is not reflected automatically (e. g. with automatic 
refactoring in the IDE or syntax errors on compile); then again, this issue is 
already there in general.

The real improvement would be to make the whole REST API layer type safe... but 
that's probably for another day.

> SDK Swagger Client Java API method names are ugly
> -------------------------------------------------
>
>                 Key: FINERACT-1212
>                 URL: https://issues.apache.org/jira/browse/FINERACT-1212
>             Project: Apache Fineract
>          Issue Type: Bug
>            Reporter: Michael Vorburger
>            Priority: Major
>
> I am, for the first time, attempting to fool around with our shiny new SDK 
> Client Java API, for FINERACT-1209.
> It seems that its method names are a bit ugly - what is e.g. that *20 suffix 
> in {{org.apache.fineract.client.services.ClientApi.retrieveAll20()}} for?
> [~aleks] [~ChinmayKulkarni] [~ptuomola] [~manthan]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to