文档(RFC 6902)明确指出:
PATCH /some/path
[
{ "op": "test", "path": "/example", "value": true },
{ "op": "add", "path": "/stuff", "value": "My value" }
]
仅在My value
通过时将/stuff
添加到test
,即。 /example
的值为true
但是当有一个更复杂的补丁时:
PATCH /some/path
[
{ "op": "test", "path": "/example", "value": true },
{ "op": "add", "path": "/stuff", "value": "My value" },
{ "op": "test", "path": "/another", "value": "Correct" },
{ "op": "test", "path": "/numbers", "value": [1, 2, 3] },
{ "op": "add", "path": "/result", "value": "My value" }
]
让我们说最后一个test
失败了,因此必须废弃整个补丁。这是否意味着您应该在运行任何其他操作之前始终收集所有test
?
该补丁中的上一步完成后,何时才能通过后续操作呢?当然,这意味着您应该在COMMIT中执行此操作,如果出现故障,则应回滚-但是该操作何时不影响数据库呢?