简体   繁体   中英

How to change the response status code for successful operation in Swagger?

As shown in the image, it says "Response Class (Status 200)" for the add operation. However, the add operation has been implemented in such a way that it will never return 200. It returns 201 on success.

My question is how can I change the (Status 200) to (Status 201)? The code for this part is as follows:

@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);
    }
}

Thanks!

在此处输入图片说明

You can add the @ResponseStatus annotation to any a controller method to define the http status it should return. Ex

Adding the following annotation on acontroller method:

@ResponseStatus(code = HttpStatus.CREATED)

Will return a HTTP status 201 (Created)

在控制器方法(方法= requestMethod.PUT)或(方法= requestMethod.POST)@ResponseStatus(代码= HttpStatus.ACCEPTED)中添加以下注释

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM