如果我将JSON对象放入我的restlet,例如
curl -X PUT -H "Content-Type: application/json" -d '{"email":"foo@baar"}' http://localhost:8888/api/exitems/5629499534213120
如何检索原始JSON,即。我的restlet中的{"email":"foo@baar"}
部分?
更新
以下是问题的背景......
我有一个Controller类,扩展ServerResource,它在我的一个模型POJO(Person)上处理REST CRUD操作。在update()(即PUT)方法中,我正在传递一个实例化的Person对象,但我不知道我的REST客户端是哪些字段是PUT。
如果客户端PUT排除了一个属性(比如)familyName - 这意味着不要更新familyName',它在POJO中为空。
另一方面,如果客户端PUT为familyName的空值 - 意图将“familyName”设置为null',则POJO familyName也为null。
如何区分这两种情况?
答案 0 :(得分:1)
在扩展ServerResource时,可以调用getRequestEntity()来检索表示,也可以在@Post带注释的Java方法上声明Representation参数。
<强>更新强>
查看更新后的问题,您似乎没有正确使用PUT方法。您通过PUT请求传递的实体应包含目标资源的完整新状态。
在您的情况下,您似乎只想进行部分更新。如果你真的需要这样的优化级别,你应该考虑使用PATCH方法。