Spring RestController:拒绝具有未知字段的请求

6 浏览
0 Comments

Spring RestController:拒绝具有未知字段的请求

我有以下的端点:

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.web.bind.annotation.RequestMethod.POST;
@RestController
public class TestController {
    @RequestMapping(value = "/persons", method = POST, consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE)
    public ResponseEntity create(@RequestBody Person person) {
        // 创建person并返回id
    }
}

如果今天我收到了一个带有未知字段的请求,像这样:

{

"name" : "Pete",

"bijsdf" : 51

}

我会创建person并忽略未知字段。

如何检查是否存在未知字段,然后返回错误的请求?

0
0 Comments

Spring RestController : reject request with unknown fields

Spring RestController通过默认禁用FAIL_ON_UNKNOWN_PROPERTIES来处理请求中的未知字段。可以通过配置Spring来修改这个默认行为。

在Spring 4.1.2-RELEASE版本中,它使用了Jackson2ObjectMapperBuilder来处理JSON转换。可以通过以下链接了解更多关于Jackson2ObjectMapperBuilder的内容:[Jackson2ObjectMapperBuilder](http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.html)

如果想要配置Spring RestController来拒绝包含未知字段的请求,可以参考以下链接:[link](https://stackoverflow.com/questions/14343477)

感谢大家的帮助!

0