gpt4 book ai didi

REST 的 HTTP 修改动词?

转载 作者:可可西里 更新时间:2023-11-01 15:08:04 26 4
gpt4 key购买 nike

据我所知,没有 RESTful 方式来对资源应用修改。为此,您必须将资源作为一个整体 PUT,覆盖之前的表示。我认为这是问题的根源,特别是当资源具有很大的代表性时。

我相信这暗示了 HTTP1.1 中缺少动词:类似于 MODIFY 或 PATCH。甚至 WebDAV 都没有这个动词(它有 PROPPATCH,其概念相似,但不是针对资源)。

当前的 HTTP 1.1 动词集对于现实世界的 RESTing 来说是否太有限了?

编辑:我在 IETF 找到了关于 PATCH 动词的提案

https://datatracker.ietf.org/doc/html/draft-dusseault-http-patch-15

This specification defines the newHTTP/1.1 [RFC2616] method PATCHthat is used to apply partialmodifications to a resource.

A new method is necessary toimprove interoperability and preventerrors. The PUT method is alreadydefined to overwrite a resourcewith a complete new body, and can notbe reused to do partial changes.Otherwise, proxies and caches and evenclients and servers may getconfused as to the result of theoperation. PATCH was mentioned inearlier HTTP specifications, but notcompletely defined.

据我所知,这样的动词唯一的问题是缺乏幂等性。

编辑:自 2010 年 3 月起,RFC 5789 已存在 (PATCH Method for HTTP)。

最佳答案

您可以将资源划分为可单独更新的子资源。

例如你有一个代表用户帐户信息的 /user 资源,你可以创建一个 /user/email 子资源,然后对其执行 PUT 以仅更新电子邮件。

关于REST 的 HTTP 修改动词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1672025/

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