gpt4 book ai didi

java - @PatchMapping 的用例

转载 作者:行者123 更新时间:2023-12-05 02:54:17 33 4
gpt4 key购买 nike

有一个RequestMethod名为 PATCH

要使用这个方法,我们可以定义@PatchMapping对于休息端点。据我了解,这听起来像是部分更新了 DB 对象。

通常,我们使用 POST 或 PUT 调用来执行保存或更新。所以,仍然不清楚 PatchMapping 的确切用例是什么,为什么我不能只使用 PUT 而不是 PATCH?

最佳答案

still not clear what are exact use cases of PatchMapping and why can't I just use PUT instead of PATCH?

PUT(由 RFC 7231 定义)和 PATCH(由 RFC 5789 定义)是用于类似目的的两种不同方法:请求服务器使其对资源的表示与客户端上的表示相匹配。

想象一下,如果您愿意,尝试更新服务器提供的网页。客户端首先获取服务器表示的最新副本:

GET /foo

然后,使用客户最喜欢的本地 HTML 编辑器对此私有(private)副本进行更改。当客户端完成更改后,我们希望将这些更改发送回服务器以供使用。

在 HTTP 中执行此操作的直接方法是简单地将整个更新的表示发送回服务器:

PUT /foo

<html>....</html>

当表示非常大(与 HTTP header 相比)并且编辑非常小(与文档相比)时,PUT 成为一种有点“昂贵”的方式来实现本应是小事的事情。

为此,我们可能还支持 PATCH,这样我们就不会发送整个文档,而只是发送我们所做更改的表示:补丁文档。

当服务器收到我们的补丁时,它会加载自己的文档副本,应用补丁文档描述的更改,并保存结果。

因此:整体用例是相同的:远程创作。您将资源的表示加载到支持 HTTP 的文档编辑器中,进行一些更改,然后点击“保存”,您的编辑器就知道如何将您的编辑传回服务器。

关于java - @PatchMapping 的用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61866943/

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