swagger-api / swagger-codegen

swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.
http://swagger.io
Apache License 2.0
17.01k stars 6.03k forks source link

[Java] Getter/Setter naming convention not followed in generated models #8282

Open mixmastered opened 6 years ago

mixmastered commented 6 years ago
Description

When generating a client library (resttemplate), the getters/setters for a field xField are getXField and setXField. As per naming conventions, this is wrong: https://stackoverflow.com/questions/2948083/naming-convention-for-getters-setters-in-java

We found this issue when testing our API - the responses contained "xfield" and "xField" as jackson serializer did not match the field to the getter generated.

Swagger-codegen version

Using swagger codegen 2.3.1.

Swagger declaration file content or url
          "xField" : {
            "type" : "string"
          },
Command line used for generation

Using swagger-codegen-maven-plugin. Maven -> Generate sources

Steps to reproduce

Run generate-sources on a specification containing a field name in some object of form "xField" (a single lower case character followed by upper-case). Generated java model contains getXField() when it should be named getxField().

Suggest a fix/enhancement

Enhance whatever code creates getters and setters for fields in the specification.

HugoMario commented 6 years ago

hey @mixmastered, sorry for delay.

do you think you have time to propose a PR? i would address this, but i'm really busy with other issues :( anyway in case you can't i think i can address this in a couple of weeks.

I think changes here must be ported to 3.0.0 too.

gregas commented 3 years ago

Oh, cum on.

Why closing https://github.com/swagger-api/swagger-codegen/pull/9129 when it was actually providing a correction.

Was merged into forked project OpenAPITools / openapi-generator

And as we tested it there is working as expected - and according to the CONVENTIONS. But unfortunately, we can not just switch to another project - has other constraints.

So, what swagger-api/swagger-codegen provides is NOT according to Java/Beans conventions, and is plain wrong - see how many related open issues you have related to this topic, wrong getter/setter naming.

This is JAVA basics, should be fixed as critical, and not neglected for so long.

( there are many great topics how should be done

HugoMario commented 3 years ago

Hello @gregas, if you are willing to resume that PR i can help you to merge it, please , let me know