Spring RestController:拒绝具有未知字段的请求
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 ResponseEntitycreate(@RequestBody Person person) { // 创建person并返回id } }
如果今天我收到了一个带有未知字段的请求,像这样:
{
"name" : "Pete",
"bijsdf" : 51
}
我会创建person并忽略未知字段。
如何检查是否存在未知字段,然后返回错误的请求?
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)
感谢大家的帮助!