想象一下这样一个简单的文档管理webservice:
document/
GET -> retrieves all documents
POST -> creates a new document
document/[id]
GET -> retrieves the "latest" revision of document specified by ID
POST -> creates a new revision of the document
document/[id]/revision
GET -> retrieves all revisions of the document
POST -> Alias to POST->document/[id]
document/[id]/revision/[revisionID]
GET -> retrieves the specified revision of the document
现在,假设我想将文档回滚到之前的任意版本(例如,从版本5到3)。
从RESTful的角度来看,应该使用 ROUTE 和 VERB 来进行此类操作?我应该为回滚操作创建一个新动词吗?
请记住,在回滚操作中不会删除任何内容。在内部,服务器只识别不同的版本号作为最新版本。
答案 0 :(得分:6)
由于您有可用的每个修订的表示,并且回滚操作应该是幂等的,因此最直接的方法是使用PUT
的内容执行document/[id]
到GET document/[id]/revision/[revisionid]
,对于您希望revisionid
设置为document/[id]
。