【发布时间】:2011-06-05 22:53:54
【问题描述】:
假设我有两个实体 - 项目团队和员工。每个员工可以是多个团队的一部分,每个团队可以有多个员工作为团队成员。我需要提供 REST API 来操纵团队、员工和他们之间的关系。
我已经确定了 3 个资源 - 团队、员工和成员(团队和员工之间的关联),这是团队的子资源。我选择将成员作为子资源的原因纯粹是基于该资源的生命周期。每当团队被移除时,成员都会被移除,并且他们在团队本身之外没有任何意义。
我公开了以下 API(相关的):
-
POST /teams使用名称、部门 ID 等创建新的团队记录。 -
POST /teams/{name}/members在按名称标识的团队和特定员工之间创建关联,因此输入数据包含员工 ID
我还需要提供 API 以在一个请求中更新团队的部门 ID 和其他属性。看起来 PUT 是自然选择,但 PUT 的语义非常清楚 - 我必须替换整个资源,在这种情况下,这意味着也替换所有成员子资源。
当我只想更新团队属性同时保留成员关联时,我应该使用什么方法(或方法)?请记住,我也希望这个请求是幂等的。
【问题讨论】:
标签: web-services api rest