Is there an idiomatic way of achieving this:
I need to PUT/POST a given entity. However, before actually putting it I need to do some changes on a more volatile system, and if that works I will go on.
So I will first ask if the PUT/POST is acceptable and then later actually do the PUT/POST.
I've thought of just using a "dry-run" query-parameter, but it doesn't feel like the right way.
Update: Trying to clarify my problem. The point is that the first PUT is just for verification of the entity.
Me System A Volatile System X
| Dry PUT | :
|-------------->| :
| | :
| 20x / 40x | :
|<--------------| :
| : :
| Upon PUT OK do some related work :
|----------------------------------->|
| : |
| Work completely |
|<-----------------------------------|
| :
|PUT (for real) :
|-------------->|
| |
| 20x |
|<--------------|
Logically I feel that this could perhaps be solved by a some kind of state property. If you are using JSON, you might for example consider adding a property like this:
{
"draft" : true
}
The first time you do the PUT request, you mark the item as draft. It stores the item but doesn't do anything else with it .
After your server accepted your request, you can then do your 'related work' elsewhere, and if that succeeded as well you can submit another PUT request to the same resource, this time setting draft
to false
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With