我有一个关于HTTP DELETE和REST的问题.我有资源x.根据x的状态,删除x可以:
我假设HTTP DELETE 必须根据HTTP/REST细节删除资源,而不是将其标记为已删除,例如:在处理HTTP DELETE之后,x上的 GET 必须返回404.这意味着HTTP DELETE不能用于第二种情况.您将如何以RESTful方式模拟此删除行为(包括1和2)?
然后,由于可以恢复某些资源,因此也应该通过REST API实现这一点.您将如何以RESTful方式建模还原行为?
为简单起见,假设x位于http:// company/api/x /上.
在REST中 - 可恢复的DELETE给出了关于如何在REST中建模状态变化的很好的介绍.基本上,如果您拥有具有字段状态的资源,则只需将该资源的新版本添加到更新状态字段.
在本主题中,我想扩展此模型.假设您有一个可以处于两种状态的资源:1和2.与引用帖子中描述的简单模型相比,有三个转换从状态1遍历到状态2,而不是仅仅一个.
我的问题是:你如何在REST中模拟状态转换?
我自己不能想出一个类似RPC的POST,它可能不是非常RESTian:
POST http://server/api/x
target_state=2&transition=3
Run Code Online (Sandbox Code Playgroud)
这通过使用转换3 将资源x从状态1 改变为状态2.