gpt4 book ai didi

rest - 我应该如何更新REST资源?

转载 作者:行者123 更新时间:2023-12-03 10:09:28 24 4
gpt4 key购买 nike

我不确定如何更新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>
</user>
</response>

我应该如何协助更新John的电子邮件?我想到了 HTTP PUT,但是我需要通过完整的XML(与HTTP GET响应匹配)来修改资源,这对我的客户端造成了很大的麻烦。

The PUT method requests that the enclosed entity be stored under the supplied Request-URI. If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a modified version of the one residing on the origin server.



还有其他办法吗?

最佳答案

如果您的服务器框架足够灵活以处理它,则可以执行以下操作:

Request:
PUT /users/1/email
Content-Type: text/plain

john@newemail.com

Response:
200 OK
Content-Location: /users/1

通过使用URL引用电子邮件作为其自身的资源,您可以使用简单的格式(如文本/纯文本)直接将其放置在电子邮件中。在响应中,Content-Location URL向客户端指示更改已对用户资源产生影响。

PATCH方法也是您可以进行部分更新的另一种方法。这是一种新引入的方法,到目前为止,尚无用于发送XML差异文档的标准格式。因此,如果采用这种方法,将不会找到太多指导。

要考虑的另一件事是,REST在大粒度更新中效果最佳。如果您发现自己需要进行这些小的更改,那么也许您需要重新考虑您的分布式体系结构。

关于rest - 我应该如何更新REST资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com