【发布时间】:2009-10-01 05:46:52
【问题描述】:
我们最近在我们的系统中添加了版本控制功能,我们很难以 RESTful 方式对这些功能进行建模。
当系统配置为“版本控制”模式时,系统的工作方式如下,在对实体进行修改之前,必须先检查它(为该用户创建一个私有副本)。修改本地副本后,用户可以签入以提交更改或撤消签出以放弃更改。
我们正在讨论什么是建模“签入”、“签出”、“获取版本”和“撤消签出”操作的正确方法。
假设我们有一个资源(名为 my-resource)
http://my-system/my-resources/{id}
我们想在其上添加版本控制功能,我们在以下两种方法之间争论:
-
以运营为导向
签到:在http://my-system/my-resources/{id}/check-in 上发帖
结帐:在http://my-system/my-resources/{id}/check-out 上发帖
获取版本: GET http://my-system/my-resources/{id}/versions/{version-id}
撤消签出:在http://my-system/my-resources/{id}/undo-check-out 上发布
-
面向资源
签到:在http://my-system/my-resources/{id}/versions 上发帖
结帐:在http://my-system/my-resources/{id}/check-out 上发帖
获取版本: GET http://my-system/my-resources/{id}/versions/{version-id}
撤消签出:删除http://my-system/my-resources/{id}/check-out
你怎么看? 您对如何对这些操作进行建模有什么建议吗? 您是否熟悉可供参考的类似公共 API?
【问题讨论】:
标签: version-control rest modeling