Użyłem kodeku swagger do generowania klas po stronie serwera jaxrs, a także klienckich klas java.kodek swagger zastępuje mój niestandardowy kod w wygenerowanych plikach
Jest to polecenie I używany do generowania klas enter code here
java -jar modules/swagger-codegen-distribution/target/swagger-codegen-distribution-2.1.2-M1.jar -i /Users/me/Workspace/swagger-codegen/samples/yaml/echo.yaml -l jaxrs -o samples/server/echo/java
kodu serwera, który został wygenerowany miał miejsce uchwyt do napisania „magii”.
public Response echo(@ApiParam(value = "" )@HeaderParam("headerParam") String headerParam,
@ApiParam(value = "",required=true) @QueryParam("message") String message)
throws NotFoundException {
// do some magic!
return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build();
}
Dodałem "magię" w metodzie "echo" i zregenerowałem kod, aby go usunąć. Jednym ze sposobów uniknięcia utraty niestandardowego kodu jest modyfikacja szablonu kodegena w celu wygenerowania interfejsu zamiast klasy. Wtedy mogę mieć cały niestandardowy kod w zaimplementowanej klasie.
Próbuję dowiedzieć się, czy istnieje sposób, w jaki mogę zachować niestandardową "magię" nawet po zregenerowaniu kodu lub jeśli istnieje lepszy sposób radzenia sobie z tą sytuacją, niż zmiana szablonu w celu wygenerowania interfejsów zamiast klas.
Zobacz także http://grokbase.com/t/gg/swagger-swaggersocket/153s7d49nr/codegen-is-overwriting-my-code –