Nel mio progetto creiamo interfacce REST usando RestEasy e usiamo Swagger per documentarle. Il problema è che questo richiede molte annotazioni, e potrebbe essere simile alla seguente:annotazioni REST disordinate
@ApiOperation(value = "Create a person object",
notes = "Create a person object" +
"Return the newley created person object",
response = Person.class)
@ApiResponses({
@ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = "Internal server error"),
@ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = "Unauthorized"),
@ApiResponse(code = HttpStatus.SC_PRECONDITION_FAILED, message = "Precondition failed"),
@ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = "Bad request"),
@ApiResponse(code = HttpStatus.SC_UNPROCESSABLE_ENTITY, message = "Unprocessable entity")
})
@POST
@Path("rest/v1/persons")
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
Person createPerson(
@HeaderParam("SecurityToken") String token,
@ApiParam(value = "person", defaultValue = "{ \"name\": = \"Bart Simpson\", \"age\": = 9 }") Person person);
La maggior parte delle annotazioni sembrano più o meno la stessa in tutti i nostri metodi. Quindi copiamo e incolliamo molto, e tutte queste annotazioni rendono le nostre interfacce del tutto illeggibili ed è difficile dire esattamente cosa stanno facendo i metodi.
Quindi mi chiedo se qualcuno ha un'idea su come potremmo avere la stessa funzionalità ma in qualche modo nascondere tutte quelle annotazioni, o almeno alcune di esse.
Non conosco Swagger ma forse supporta gli stereotipi. In questo modo potresti essere in grado di ridurre tutte le annotazioni @ApiXxx a una. – Thomas
Suppongo che il problema principale sia con @ApiResponses? – Ron
Swagger supporta le meta-annotazioni? Questo è il solito approccio di primavera. – chrylis