Spring Rest返回带有特定http响应代码的JSON响应

And*_*w T 1 java rest spring json spring-mvc

我对Spring很新.我有一个在Spring中编写的REST api,但我不知道如何使用自定义的http响应代码返回JSON响应.

我返回一个JSON响应如下:

public String getUser(String id){

...
return jsonObj;
}
Run Code Online (Sandbox Code Playgroud)

但它总是显示200 http ok状态代码.

这是我的问题:

如何同步响应JSON和HTTP代码?

如何在void函数中返回JSON响应和自定义HTTP代码?

Sas*_*ota 5

使用@ResponseStatus注释:

@GetMapping
@ResponseStatus(HttpStatus.ACCEPTED)
public String getUser(String id) {...}
Run Code Online (Sandbox Code Playgroud)

替代方式:如果要以编程方式决定要返回的状态,可以使用ResponseEntity.将方法的返回类型更改为ResponseEntity<String>,您将获得这样的DSL:

ResponseEntity
        .status(NOT_FOUND)
        .contentType(TEXT_PLAIN)
        .body("some body");
Run Code Online (Sandbox Code Playgroud)