我想访问已经反序列化的REST端点的请求主体对象。
我的REST控制器如下所示:
@RequestMapping(value = "car/{id}", method = RequestMethod.PUT)
public ResponseEntity updateCar(@RequestBody Car car, @PathVariable("id") String carId) {
// My update logic, how i update the car object in database
// with the retrieved request body.
// Here i want to access the raw request body e.g. the JSON string
}
修改
汽车POJO:public class Car {
private String id;
private String name;
private String color;
private List<String> additions = new ArrayList<>();
// setters and getters
}
当我想进行部分更新时,例如像这样的PUT请求:
curl -X PUT \
-H "Content-Type: application/json" \
-d "{ \"color\" : \"Green\" }" \
http://localhost:8080/car/1234
在上面的请求主体反序列化之后,additions
字段是一个空列表,尽管我没有指定它。如果我可以访问原始json请求主体,那么我可以检查是否指定了additions
字段。
是否可以在反序列化后访问原始请求正文?