是否有惯用的方式来实现这一目标:
我需要PUT/POST给定的实体。但是,在实际安装它之前,我需要在一个更加不稳定的系统上进行一些更改,如果可以,我将继续进行。
因此,我将首先询问PUT/POST是否可接受,然后再实际执行PUT/POST。
我曾想过只使用“空运行”查询参数,但感觉不正确。
更新:试图澄清我的问题。关键是,第一个PUT仅用于验证实体。
Me System A Volatile System X
| Dry PUT | :
|-------------->| :
| | :
| 20x / 40x | :
|<--------------| :
| : :
| Upon PUT OK do some related work :
|----------------------------------->|
| : |
| Work completely |
|<-----------------------------------|
| :
|PUT (for real) :
|-------------->|
| |
| 20x |
|<--------------|
最佳答案
从逻辑上讲,我认为这可以通过某种状态属性来解决。如果您使用的是JSON,则例如可以考虑添加如下属性:
{
"draft" : true
}
第一次执行PUT请求时,将项目标记为草稿。它存储该项目,但不执行其他任何操作。
服务器接受您的请求后,您可以在其他地方进行“相关工作”,如果成功完成,您也可以向同一资源提交另一个PUT请求,这次将
draft
设置为false
。关于用于PUT或POST的REST "dry-run"选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15814341/