更新资源上的属性

时间:2013-07-05 01:47:07

标签: api rest

是否有REST规则或最佳实践来更新/创建资源上的特定属性?例如,假设我有一个用户资源。

/ users(GET)获取所有用户,POST创建一个新用户,并使用/ users /(id)更新具有该id的用户。

让我们说我需要更新该人的状态。我可以在PUT请求中传递它,但问题是我也想删除状态。通常使用PUT我只更新传递的值,即如果你使用firstName = Bob我会更新那些人firstName但我不会删除他的lastName因为它没有被传入。我不会删除状态如果它没有通过。所以我需要一种删除状态的方法。

所以我认为状态只是另一种资源。但这是一个非常简单的问题。

/ users /(id)/ status POST创建新状态?我试图解决的问题是,状态只是一个简单的名称,如“离开”或“休假”。似乎很奇怪做/ users /(id)/状态与身体=离开。即状态出现在URL和正文中,似乎是错误的。使用这种方法,POST和PUT也是相同的。也许没关系。

我觉得我有简单的REST案例,但是这个案子让我很难过。

1 个答案:

答案 0 :(得分:0)

通常,如果您可以完全描述它并且好像它是资源位置,那么您将使用PUT创建新资源。使用POST(带数据)更新隐藏的资源的任何部分。由于状态不识别资源,我认为您应该使用POST。

添加示例:

POST /users HTTP/1.1
<user id="someID" >
  <status>newStatus</status>
</user>
相关问题