In meinem Projekt erstellen wir REST-Schnittstellen mit RestEasy und verwenden Swagger, um sie zu dokumentieren. Das Problem ist, dass dies viele Anmerkungen erfordert, und wie folgt aussehen könnte:Chaotische REST-Anmerkungen
@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);
Die meisten der Anmerkungen sehen mehr oder weniger das gleiche in allen unseren Methoden. Also kopieren und einfügen wir viel, und all diese Anmerkungen machen unsere Schnittstellen ziemlich unlesbar und es ist schwer genau zu sagen, was die Methoden machen.
Also ich frage mich, ob jemand eine Idee hat, wie wir die gleiche Funktionalität haben könnten, aber irgendwie alle diese Anmerkungen, oder zumindest einige von ihnen zu verstecken.
Ich weiß nicht Swagger, aber vielleicht unterstützt es Stereotypen. Auf diese Weise können Sie möglicherweise alle @ApiXxx Annotationen auf eins reduzieren. – Thomas
Ich nehme an, das Hauptproblem ist mit @ApiResponses? – Ron
Unterstützt Swagger Meta-Annotationen? Das ist der übliche Spring-Ansatz. – chrylis