应该使用什么 HTTP 方法类型来重新计算相关资源
What HTTP method type should be used for recalculating the related resources
在我的应用程序中,我维护了几个形状。这些形状是相对于某个参考点计算的。这个参考点被认为是 (0, 0)。例如有人想将这个参考点移动(x, y),那么所有现有Shapes的距离需要用新的参考点重新计算。
我有一个 REST API,用于更改此参考点,因此在内部所有形状距离都使用该 (x, y) 移动重新计算。
这种操作应该使用什么 HTTP 方法 POST、PUT 或 PATCH?由于我在上下文中找不到任何一个正确的方法,如果我按照这些 HTTP 方法的定义进行操作。
What HTTP method should be used for such operation POST, PUT or PATCH? As I don't find any one of these correct in the context, if I go by the definition of these HTTP method.
视情况而定。
当客户端编辑资源的本地副本并将文档的编辑版本发送回服务器(也称为“远程创作”)时,我们使用 PUT/PATCH。想想“保存文件”。
我们使用 POST 时...好吧,几乎所有其他事情。
POST serves many useful purposes in HTTP, including the general purpose of “this action isn’t worth standardizing.” -- Fielding, 2009
考虑 HTML 此处的形式 - 信息以与资源本身的表示形式完全无关的表示形式分派到源服务器。
例如,在资源模型中,我们有一个参考点本身的资源
GET /example
200 OK
Content-Type: appplication/json
{ "referencePoint": { "x": 0, "y": 0 } }
使用远程创作语义非常合理
PUT /example
Content-Type: appplication/json
{ "referencePoint": { "x": 0, "y": 999 } }
如果资源的表示非常大(比 HTTP headers 大得多),并且变化很小,那么我们可能会使用补丁文档来传达信息,而不是完整的文档.
PATCH /example
Content-Type: application:json-patch+json
[ { "op": "replace", "path": "referencePoint/y", "value": 999 } ]
在这两种情况下,基本思想是相同的 - 我们请求源服务器更改其资源副本以匹配客户端上的编辑版本。
It is okay to use POST 其他一切。
在我的应用程序中,我维护了几个形状。这些形状是相对于某个参考点计算的。这个参考点被认为是 (0, 0)。例如有人想将这个参考点移动(x, y),那么所有现有Shapes的距离需要用新的参考点重新计算。
我有一个 REST API,用于更改此参考点,因此在内部所有形状距离都使用该 (x, y) 移动重新计算。
这种操作应该使用什么 HTTP 方法 POST、PUT 或 PATCH?由于我在上下文中找不到任何一个正确的方法,如果我按照这些 HTTP 方法的定义进行操作。
What HTTP method should be used for such operation POST, PUT or PATCH? As I don't find any one of these correct in the context, if I go by the definition of these HTTP method.
视情况而定。
当客户端编辑资源的本地副本并将文档的编辑版本发送回服务器(也称为“远程创作”)时,我们使用 PUT/PATCH。想想“保存文件”。
我们使用 POST 时...好吧,几乎所有其他事情。
POST serves many useful purposes in HTTP, including the general purpose of “this action isn’t worth standardizing.” -- Fielding, 2009
考虑 HTML 此处的形式 - 信息以与资源本身的表示形式完全无关的表示形式分派到源服务器。
例如,在资源模型中,我们有一个参考点本身的资源
GET /example
200 OK
Content-Type: appplication/json
{ "referencePoint": { "x": 0, "y": 0 } }
使用远程创作语义非常合理
PUT /example
Content-Type: appplication/json
{ "referencePoint": { "x": 0, "y": 999 } }
如果资源的表示非常大(比 HTTP headers 大得多),并且变化很小,那么我们可能会使用补丁文档来传达信息,而不是完整的文档.
PATCH /example
Content-Type: application:json-patch+json
[ { "op": "replace", "path": "referencePoint/y", "value": 999 } ]
在这两种情况下,基本思想是相同的 - 我们请求源服务器更改其资源副本以匹配客户端上的编辑版本。
It is okay to use POST 其他一切。