Java @PatchMapping的用例
有一个名为的修补程序 要使用此方法,我们可以定义一个rest端点。 根据我的理解,这听起来像是部分更新了DB对象 通常,我们使用POST或PUT调用来执行保存或更新。所以,仍然不清楚PatchMapping的确切用例是什么,为什么我不能用PUT代替PATCH 仍然不清楚PatchMapping的确切用例是什么,为什么我不能用PUT代替PATCH PUT(由定义)和PATCH(由定义)是用于类似目的的两种不同方法:请求服务器使其资源表示与客户端上的表示相匹配 想象一下,如果您愿意,尝试更新服务器提供的网页。客户端首先获取服务器表示的最新副本:Java @PatchMapping的用例,java,spring,hibernate,rest,http,Java,Spring,Hibernate,Rest,Http,有一个名为的修补程序 要使用此方法,我们可以定义一个rest端点。 根据我的理解,这听起来像是部分更新了DB对象 通常,我们使用POST或PUT调用来执行保存或更新。所以,仍然不清楚PatchMapping的确切用例是什么,为什么我不能用PUT代替PATCH 仍然不清楚PatchMapping的确切用例是什么,为什么我不能用PUT代替PATCH PUT(由定义)和PATCH(由定义)是用于类似目的的两种不同方法:请求服务器使其资源表示与客户端上的表示相匹配 想象一下,如果您愿意,尝试更新服务器提
GET /foo
然后,使用客户端最喜欢的本地HTML编辑器,对这个私有副本进行更改。当客户端完成更改后,我们希望将这些更改发送回服务器以供使用
在HTTP中执行此操作的直接方法是将整个更新的表示形式发送回服务器:
PUT /foo
<html>....</html>
PUT/foo
....
如果表示非常大(与HTTP头相比),并且编辑非常小(与文档相比),那么PUT就成了一种有点“昂贵”的方式来实现应该是小事情的东西
为此,我们可能还支持补丁,因此我们不发送整个文档,只发送我们所做更改的表示:补丁文档
当服务器收到我们的补丁时,它加载自己的文档副本,应用补丁文档描述的更改,并保存结果
因此:整个用例是相同的:远程创作。您将资源的表示形式加载到支持HTTP的文档编辑器中,进行一些更改,然后单击“保存”,您的编辑器就知道如何将编辑内容传回服务器。补丁意味着更新部分数据。因此,如果您有一个复杂的数据对象,但您只更新了其中的一部分(例如某些字段),并且不想发送整个对象,那么您可以使用path对这是一个部分更新进行签名。在repo级别如何处理?我们必须保存或更新整个obj!如果你能提供一个详细的例子,那就太好了。我找到了一个例子:但是如果你不满意,请告诉我。还是很困惑!它将如何在存储库级别工作?如果有一个使用REST端点、服务和repo代码的示例来更好地理解它,那将是非常棒的!谢谢你的回答,现在我在用例方面已经很清楚了。如果能举一个REST端点、服务和repo代码的例子来更好地理解它,那就太好了!