Rest api - 更新资源的单个字段

时间:2017-12-21 09:28:59

标签: java spring rest http

假设我的驱动程序资源有休息端点。 我有像这样的PUT方法

myapi/drivers/{id}

{body of put method}

我需要添加允许“启用”和“禁用”驱动程序

的功能

为此创建新端点是个好主意吗?

PUT myapi/drivers/{id}/enable/false

或者最好使用现有端点?使用现有端点的一个问题是驱动程序有很多字段(差不多30个),而发送所有这些字段只是为了更新'启用'或'禁用'驱动程序有点过分。

您怎么看?

2 个答案:

答案 0 :(得分:10)

这正是HTTP方法PATCH的用途。它用于资源包含许多字段但您只想更新一些字段的情况。

PUT一样,您向myapi/drivers/{id}发送请求。但是,与PUT不同,您只需在请求正文中发送要更改的字段。

创建像myapi/drivers/{id}/enable这样的端点并不是非常RESTful,因为“enable”本身并不能真正称为资源。

有关Spring PATCH端点的示例实现,请参阅此link

答案 1 :(得分:1)

使用PATCH Http metod更新一个字段

PATCH myapi/drivers/{id}/enable