Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @PatchMapping的用例_Java_Spring_Hibernate_Rest_Http - Fatal编程技术网

Java @PatchMapping的用例

Java @PatchMapping的用例,java,spring,hibernate,rest,http,Java,Spring,Hibernate,Rest,Http,有一个名为的修补程序 要使用此方法,我们可以定义一个rest端点。 根据我的理解,这听起来像是部分更新了DB对象 通常,我们使用POST或PUT调用来执行保存或更新。所以,仍然不清楚PatchMapping的确切用例是什么,为什么我不能用PUT代替PATCH 仍然不清楚PatchMapping的确切用例是什么,为什么我不能用PUT代替PATCH PUT(由定义)和PATCH(由定义)是用于类似目的的两种不同方法:请求服务器使其资源表示与客户端上的表示相匹配 想象一下,如果您愿意,尝试更新服务器提

有一个名为的修补程序

要使用此方法,我们可以定义一个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代码的例子来更好地理解它,那就太好了!