在RESTFul API中,恢复/回滚操作的正确http动词是什么?

时间:2013-11-03 02:03:10

标签: rest

想象一下这样一个简单的文档管理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 来进行此类操作?我应该为回滚操作创建一个新动词吗?

请记住,在回滚操作中不会删除任何内容。在内部,服务器只识别不同的版本号作为最新版本。

1 个答案:

答案 0 :(得分:6)

由于您有可用的每个修订的表示,并且回滚操作应该是幂等的,因此最直接的方法是使用PUT的内容执行document/[id]GET document/[id]/revision/[revisionid] ,对于您希望revisionid设置为document/[id]