Аннотация @ApiResponses запрещена для этого местоположения

#spring #spring-boot #swagger #swagger-ui #swagger-2.0

#spring #весна-загрузка #развязность #swagger-пользовательский интерфейс #swagger-2.0

Вопрос:

Я получаю сообщение об ошибке ниже: Аннотация @ApiResponses запрещена для этого местоположения Мы используем swagger2.2.0

 @RestController
@RequestMapping(value = "/example")
@ApiResponses(value = {  @ApiResponse(code = 200, message = "Success"),
        @ApiResponse(code = 204, message = "No Content"),
        @ApiResponse(code = 400, message = "Bad Request"),
        @ApiResponse(code = 401, message = "Unauthorized"),
        @ApiResponse(code = 500, message = "Internal Server Error")})
public class SomeController{

}
  

Есть ли у нас какой-либо вариант без обновления версии swagger?
Пожалуйста, помогите ..

Ответ №1:

это потому, что аннотацию @ApiResponses можно использовать только в методе!

Ниже приведен пример фрагмента:

  @ApiResponses(value = { @ApiResponse(code = 400, message = "Invalid ID supplied"),
 @ApiResponse(code = 404, message = "Pet not found") })
 public Response getPetById(...) {...}
  

Комментарии:

1. Это неправда. Я обновил версию swagger до 2.9.0, и она принимается на уровне класса. У меня другая проблема, хотя с 2.9.0.

2. @Mebin — Я думаю, что имеет смысл на уровне метода в случае swagger версии 2.2.0, но 2.9.0 на уровне класса вы также можете предоставить. В любом случае, большое спасибо за подсказку. Я устанавливаю уровень метода без обновления версии swagger.

3. @Nishant. Если да, не могли бы вы, пожалуйста, отметить ответ Мирко как полезный. Спасибо.

4. @Nishant github.com/swagger-api/swagger-core/wiki /… 🙂