我不确定应该如何更新 REST 资源的各个属性。考虑以下示例:
# HTTP GET to /users/1.xml
<?xml version="1.0" encoding="UTF-8" ?>
<response>
<user>
<id>1</id>
<name>John Doe</name>
<email>[email protected] /cdn-cgi/l/email-protection</email>
</user>
</response>
我应该如何帮助更新约翰的电子邮件?HTTP PUT
我想到了,但是如果我要求完整的 XML(与 HTTP GET 响应匹配)来修改资源,就会给我的客户带来困难。
PUT 方法要求
封闭的实体存储在
提供的请求 URI。如果
Request-URI 指的是已经
现有资源,封闭实体
应该被视为修改过的
驻留在的版本
源服务器。
还有其他办法吗?
如果您的服务器框架足够灵活来处理它,您可以这样做:
Request:
PUT /users/1/email
Content-Type: text/plain
[email protected] /cdn-cgi/l/email-protection
Response:
200 OK
Content-Location: /users/1
通过使用 URL 将电子邮件视为其自己的资源,您可以使用文本/纯文本等简单格式直接对其进行 PUT。在响应中,Content-Location url 向客户端指示更改已对用户资源产生影响。
PATCH 方法也是进行部分更新的另一种方法。这是一种新引入的方法,目前还没有用于发送 XML diff 文档的标准格式。因此,如果您采用这种方法,您将找不到太多指导。
另一件需要考虑的事情是,REST 最适合大粒度更新。如果您发现自己需要进行这些小的更改,那么也许您需要重新考虑您的分布式架构。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)