[Jaxrs-Resteasy] Improvements for Jaxrs-Resteasy
#4,512 opened on Jan 6, 2017
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 #4447)
this has already been fixed in #4447
- create deployable WAR file (see #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...