我有一个url端点/example/{id}/update
,它在其正文中接受带有JSON的HTTP请求(PUT)。问题是,这个url需要处理两个不同的json对象。
所以我想有两个不同的Spring Request Handler方法来处理这两个json对象。如果这是一个简单的http表单请求,我可以使用RequestMapping.params
来分隔它们:
@RequestMapping(value="/example/{id}/update", method=RequestMethod.PUT, params={"a.x", "!b.x"} )
@ResponseBody
public Response updateTypeA(@Valid JsonA a) {...}
@RequestMapping(value="/example/{id}/update" method=RequestMethod.PUT, params={"!a.x", "b.x"} )
@ResponseBody
public Response updateTypeA(@Valid JsonB b) {...}
但是因为我的请求是一个在其正文中有json对象的请求(不是参数),我无法让params
工作。
所以我的问题是:有没有办法根据请求体中是否存在json属性来区分两个请求处理程序方法(对于同一个URL)?
当然我可以实现自己的调度请求处理程序方法,但这会使一切(验证......)如此痛苦