1
resposta

SWAGGER. Como documentar o status code?

Boa tarde, blz?

Como que eu faço para documentar somente o status code 2XX e 4xx?

At. Vinicius

1 resposta

Olá Vinicius, tudo bem?

Para documentar somente o status code 2XX e 4XX no Swagger, você pode utilizar a anotação @ApiResponse juntamente com a anotação @ApiResponses.

Segue um exemplo de como utilizar:

@ApiOperation(value = "Exemplo de endpoint", response = ExemploResponse.class)
@ApiResponses(value = {
        @ApiResponse(code = 200, message = "Retorna o objeto ExemploResponse", response = ExemploResponse.class),
        @ApiResponse(code = 400, message = "Requisição inválida"),
        @ApiResponse(code = 401, message = "Não autorizado"),
        @ApiResponse(code = 404, message = "Não encontrado"),
        @ApiResponse(code = 500, message = "Erro interno do servidor")
})
@GetMapping("/exemplo")
public ResponseEntity<ExemploResponse> exemplo() {
    // código do endpoint
}

No exemplo acima, estamos documentando o endpoint "/exemplo" e definindo que ele retorna um objeto do tipo ExemploResponse. Utilizamos a anotação @ApiResponses para definir as possíveis respostas do endpoint, e a anotação @ApiResponse para definir cada uma delas. No caso, estamos documentando as respostas com os status code 200, 400, 401, 404 e 500.

Para documentar somente os status code 2XX e 4XX, basta remover as anotações @ApiResponse referentes aos outros status code. Ficaria assim:

@ApiOperation(value = "Exemplo de endpoint", response = ExemploResponse.class)
@ApiResponses(value = {
        @ApiResponse(code = 200, message = "Retorna o objeto ExemploResponse", response = ExemploResponse.class),
        @ApiResponse(code = 400, message = "Requisição inválida"),
        @ApiResponse(code = 401, message = "Não autorizado"),
        @ApiResponse(code = 404, message = "Não encontrado")
})
@GetMapping("/exemplo")
public ResponseEntity<ExemploResponse> exemplo() {
    // código do endpoint
}

Espero ter ajudado e bons estudos!