是否有REST规则或最佳实践来更新/创建资源上的特定属性?例如,假设我有一个用户资源。
/ users(GET)获取所有用户,POST创建一个新用户,并使用/ users /(id)更新具有该id的用户。
让我们说我需要更新该人的状态。我可以在PUT请求中传递它,但问题是我也想删除状态。通常使用PUT我只更新传递的值,即如果你使用firstName = Bob我会更新那些人firstName但我不会删除他的lastName因为它没有被传入。我不会删除状态如果它没有通过。所以我需要一种删除状态的方法。
所以我认为状态只是另一种资源。但这是一个非常简单的问题。
/ users /(id)/ status POST创建新状态?我试图解决的问题是,状态只是一个简单的名称,如“离开”或“休假”。似乎很奇怪做/ users /(id)/状态与身体=离开。即状态出现在URL和正文中,似乎是错误的。使用这种方法,POST和PUT也是相同的。也许没关系。
我觉得我有简单的REST案例,但是这个案子让我很难过。
答案 0 :(得分:0)
通常,如果您可以完全描述它并且好像它是资源位置,那么您将使用PUT创建新资源。使用POST(带数据)更新隐藏的资源的任何部分。由于状态不识别资源,我认为您应该使用POST。
添加示例:
POST /users HTTP/1.1
<user id="someID" >
<status>newStatus</status>
</user>