Как изменить код состояния ответа для успешной работы в Swagger?

Как показано на изображении, для операции добавления указано «Класс ответа (состояние 200)». Однако операция добавления была реализована таким образом, что она никогда не возвращает 200. В случае успеха она возвращает 201.

Мой вопрос: как я могу изменить (Статус 200) на (Статус 201)? Код этой части выглядит следующим образом:

@RequestMapping(method = RequestMethod.PUT, value = "/add")
@ApiOperation(value = "Creates a new person", code = 201)
@ApiResponses(value = {
        @ApiResponse(code = 201, message = "Record created successfully"),
        @ApiResponse(code = 409, message = "ID already taken")
})
public ResponseEntity<String> add(@RequestParam(value = "name", required = true) String name,
        @RequestParam(value = "id", required = true) String id) {
    if (PD.searchByID(id).size() == 0) {
        Person p = new Person(name, id);
        PD.addPerson(p);
        System.out.println("Person added.");
        return new ResponseEntity<String>(HttpStatus.CREATED);
    } else {
        System.out.println("ID already taken.");
        return new ResponseEntity<String>(HttpStatus.CONFLICT);
    }
}

Спасибо!

введите описание изображения здесь


person Akshay Damle    schedule 24.05.2016    source источник
comment
Вы пытались добавить аннотацию @ResponseStatus к операции?   -  person Dilip Krishnan    schedule 24.06.2016
comment
@DilipKrishnan: ты спасатель!!!   -  person simonso    schedule 23.10.2016
comment
@DilipKrishnan, если вы сделаете это ответом, а не комментарием, я проголосую за него!   -  person mkasberg    schedule 01.04.2018


Ответы (2)


Вы можете добавить аннотацию @ResponseStatus к любому методу контроллера, чтобы определить статус http, который он должен возвращать. Бывший

Добавление следующей аннотации к методу контроллера:

@ResponseStatus(code = HttpStatus.CREATED)

Вернет статус HTTP 201 (Создано)

person mad_fox    schedule 02.10.2018

Добавление следующей аннотации в метод контроллера (метод = requestMethod.PUT) или (метод = requestMethod.POST) @ResponseStatus (код = HttpStatus.ACCEPTED)

person Gemod    schedule 11.12.2018
comment
Добро пожаловать в StackOverflow! Хотя хорошо публиковать дополнительные ответы, где вы можете добавить ценность, я не думаю, что этот ответ добавляет что-то, что еще не включено в принятый ответ, и, возможно, вводит ошибку, потому что HttpStatus.ACCEPTED (т.е. 202) не является статусом, который вопрос говорит о. - person DaveyDaveDave; 11.12.2018