我应该如何更新REST资源?
我不确定应该如何更新REST资源的各个属性。考虑下面的例子:我应该如何更新REST资源?,rest,Rest,我不确定应该如何更新REST资源的各个属性。考虑下面的例子: # HTTP GET to /users/1.xml <?xml version="1.0" encoding="UTF-8" ?> <response> <user> <id>1</id> <name>John Doe</name> <email>john@doe.com</email>
# HTTP GET to /users/1.xml
<?xml version="1.0" encoding="UTF-8" ?>
<response>
<user>
<id>1</id>
<name>John Doe</name>
<email>john@doe.com</email>
</user>
</response>
#HTTP GET to/users/1.xml
1.
无名氏
john@doe.com
我应该如何帮助更新John的电子邮件<我想到的是code>httpput,但是我需要一个完整的XML(匹配httpget响应)来修改资源,这会给我的客户机带来困难
PUT方法要求
封闭实体应存储在
提供的请求URI。如果
请求URI引用已存在的
现有资源,封闭的实体
应将其视为修改后的
驻留在服务器上的服务器的版本
原始服务器
还有其他方法吗?如果您的服务器框架足够灵活,可以执行以下操作:
Request:
PUT /users/1/email
Content-Type: text/plain
john@newemail.com
Response:
200 OK
Content-Location: /users/1
通过使用URL将电子邮件作为自己的资源引用,您可以使用简单的格式(如text/plain)直接将其放入。在响应中,内容位置url向客户端指示更改对用户资源产生了影响
补丁方法也是进行部分更新的另一种方法。这是一种新引入的方法,目前还没有用于发送XML差异文档的标准格式。因此,如果你采取这种方法,你将找不到太多的指导
另一个需要考虑的是,REST在大粒度更新中工作得最好。如果您发现自己需要进行这些小的更改,那么您可能需要重新考虑您的分布式体系结构