2017-06-21 1 views
0

Zugegeben, ich habe nicht zu hart für eine Antwort gesucht. Meine Frage ist, bei der Definition von Swagger Annotationen mit Springfox-Swagger-Ui, wie definiert man gemeinsame ApiResponse für mehr als eine Methode und möglicherweise mehr als eine Klasse verwendet?Definieren Sie allgemeine Swagger Annotation

Siehe die 2 Beispielmethoden unter dem allgemeinen ApiResponse ist Fehler 500. Idealerweise würde ich das einmal definieren wollen. Best Practices und/oder Vorschläge?

Beispielcode unten:

@GET 
@Path("/greeting") 
@Produces(MediaType.APPLICATION_JSON) 
@ApiOperation(value = "Returns greeting details", notes = "Returns .....", response = Greeting.class) 
@ApiResponses(value = { 
    @ApiResponse(code = 200, message = "Successful retrieval of greeting details", response = Greeting.class), 
    @ApiResponse(code = 404, message = "Greeting does not exist"), 
    @ApiResponse(code = 500, message = "Internal server error")} 
) 
public Response getGreeting(.....) { 
    ... 
} 


@GET 
@Path("/something") 
@Produces(MediaType.APPLICATION_JSON) 
@ApiOperation(value = "Returns something details", notes = "Returns .....", response = Something.class 
@ApiResponses(value = { 
    @ApiResponse(code = 200, message = "Successful retrieval of greeting details", response = Something.class), 
    @ApiResponse(code = 404, message = "Something does not exist"), 
    @ApiResponse(code = 500, message = "Internal server error")} 
) 
public Response getSomething(.....) { 
    ... 
} 

Speziell bezogen auf:

@ApiResponse(code = 500, message = "Internal server error") 

Vielen Dank im Voraus.

Antwort

0

Da @ApiResponse eine Annotation ist, müssen Sie sie für jede gewünschte Methode hinzufügen, einschließlich @ApiResponses Annotation.

0

Sie können benutzerdefinierte Annotation erstellen, die ApiResponses Annotation verwenden. Und verwenden Sie diese benutzerdefinierte Annotation auf Methodenebene. @ApiResponses() public @interface CustomApiResponse {

}
+0

@Target (ElementType.METHOD) @Retention (RetentionPolicy.RUNTIME) @ApiResponses (Wert = { @ApiResponse (code = 200, message „= erfolgreich abgerufen Liste "), @ApiResponse (code = 401, message =" Sie sind nicht berechtigt, die Ressource anzuzeigen "), @ApiResponse (code = 403, message =" Zugriff auf die Ressource, die Sie versuchten zu erreichen, ist verboten "), @ApiResponse (code = 404, message = "Die Ressource, die Sie erreichen wollten, wurde nicht gefunden.") }) public @interface CustomApiResponse { } –

+0

Bitte bearbeiten Sie Ihre Antwort mit Ihrem Kommentar und formatieren Sie Ihre Antwort (Strg + K) mit weiteren Details – user7294900

Verwandte Themen