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

问题描述 投票:16回答:2

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

myapi/drivers/{id}

{body of put method}

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

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

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

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

你怎么看?

java spring rest http
2个回答
10
投票

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

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

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

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


1
投票

使用PATCH Http方法更新一个字段

PATCH myapi/drivers/{id}/enable
© www.soinside.com 2019 - 2024. All rights reserved.