从 Spring REST API 返回 HTTP 代码 200

2022-09-02 02:36:50

我想使用此代码接收带有值的http链接:

@PostMapping(value = "/v1/notification")
public String handleNotifications(@RequestParam("notification") String itemid) {
    // parse here the values
    return "result successful result";
}

如何返回 http 代码 - 成功响应?200

而且,例如,如果代码处理中存在代码异常,如何返回错误?404


答案 1

如果您使用的是弹簧:

@PostMapping(value = "/v1/notification")
public ResponseEntity handleNotifications(@RequestParam("notification") String itemid) {
    // parse here the values
    return ResponseEntity.ok().build(); 
    //OR ResponseEntity.ok("body goes here");
}

答案 2

如果使用它,默认情况下应返回 200。@RestController

但无论如何,您可以通过注释(即使方法返回)设置特定的响应状态,也可以通过 返回自定义响应。@ResponseStatusvoidResponseEntity

编辑:增加了错误处理

对于错误处理,您可以返回特定的响应实体:

 return ResponseEntity.status(HttpStatus.FORBIDDEN)
            .body("some body ");

或者您可以使用:@ExceptionHandler

   @ExceptionHandler(Exception.class)
    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    public void handleError(Exception ex) {
        // TODO: log exception
    }

推荐