更多REST动词的解决方法

时间:2014-03-06 23:47:39

标签: rest httpverbs undelete

我正在开发一个帐户有角色的游戏网站。我正在使用路线:

account/{action} //execute `action` on the current account
character/{name}/{action} //execute `action` on specific character

但我需要deleteundelete(它们是软删除的)字符,虽然使用表单是delete的正确方法,但它变得不必要了(是吗? )当我只能使用character/{name}/delete的GET链接时,会膨胀。此外,没有取消删除/恢复的动词。

解决这个问题的正确方法是什么(或者两者都不是完美的方式)?

2 个答案:

答案 0 :(得分:1)

如果您的网址包含名词而不是动词,则可以使用RESTful版本,例如:

character/{name}/achievements or

character/{name}/travels

要解决您的有效/无效帐户问题,您可以执行以下操作:

GET/PUT account/activity

答案 1 :(得分:0)

已经不安宁了,你根据路线决定行动,而不是基于动词。所以说,创建一个未删除的新路由(即字符/ {name} / undelete),你已经不是REST,所以另一条路线应该无关紧要。如果你正在寻找RESTful,那么路由应该保持帐号/ {字符},并且动词确定动作(即GET,PUT,POST DELETE到同一路线)。既然你实际上没有删除,我会学习POST(或者PUT),即更新实体以删除(或不活动),或者将其更新为取消删除(再次激活)