Description
Description
The generated code stubs are way to complicated, in fact only the following files are needed for Resteasy (verified with Jboss EAP 7):
- Api-Interface (with all JaxRS-annotations)
- Implementation class implementing the interface
- Class to activate Jax-RS: @ApplicationPath / extends RestApplication
Additional Fixes
- the api is generated as class, but IMHO this should be an interface!?
- @ApiResponse are missing
this has already been fixed in the master branch
- @Api annotation is missing (see [JAX-RS RESTEasy] Generated JAX-RS RESTEasy stub is missing swagger annotations #4447)
this has already been fixed in #4447
- create deployable WAR file (see Can't generate a deployable war when using jaxrs-resteasy #4461)
The current state of #4712 allows to generate a simple structure with interfaces holding all JaxRS-annotations and a simple implementation class. Registration for JaxRS is done by extending Jaxrs Application. It has been verified to work for Jboss EAP 6 + 7 as no resteasy-specific libraries are included ( resteasy-jackson2-provider is now provided as opposed to jaxrs-resteasy).
Datetime-Support
- joda datetime support (using configuration of Jackson ObjectMapper)
- java8 datetime support (using configuration of Jackson ObjectMapper)
This language supports Java8 and Joda datetime using the JacksonConfig, the needed dependencies included automatically (see pom.mustache).
I added the flag "joda" to AbstractJavaCodegen.java to allow checking for joda in the mustache templates.
Further Enhancements
- javax.ws.rs.core.Response is used instead of the real response data type
should better be changed separately see #4713
- optional: activate Swagger contract generator (ApiListingResource / SwaggerSerializers)
Questions
- SecurityContext should be better removed from method signatures to have a clean interface
(see https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-RESTEasy-2.X-Project-Setup-1.5)
Swagger-codegen version
2.2.2-SNAPSHOT
Related issues
#4447 regarding the Swagger annotations
#4461 regarding WAR-file
#4123 for enums
#3446 for tag support
Suggest a Fix
If you like, I can provide a new simplified Resteasy language.
Using the dynamic Swagger contract generator it provides true turnaround development...