我应该用另一个资源字段而不是ID来修补吗

问题描述 投票:0回答:1

有一个 REST API 公开了需要 ID 的 PATCH /resources/{id} 方法。 然而,项目要求意味着更新给定的资源另一个字段,未给出ID

由于目的是更新资源的特定字段,因此 PATCH 应该是适当的。

其他字段的 PATCH 是否不正确并且不遵循 REST API 的准则?

PATCH /resources?field=X

我应该使用 POST 吗?

amazon-web-services rest api-design http-patch
1个回答
1
投票

API 端点 PATCH /resources/{id} 似乎需要 ID 作为 URL 路径的一部分,这是更新特定资源的正确且标准的方法。如果您想根据另一个字段(例如,field=X)更新资源,则使用 PATCH 方法不是标准的 RESTful 方法。

使用带查询参数的 GET: 您可以使用 GET 请求根据字段值检索资源 ID,然后使用该 ID 发出后续 PATCH 请求。

示例:GET /resources?field=X 以获取资源 ID,然后使用更新后的数据 PATCH /resources/{id}。

使用POST: 如果不支持带有替代字段的PATCH方法,并且您无法事先检索资源ID,则可以使用POST方法根据提供的字段触发更新。

示例:POST /resources?field=X,并在请求正文中包含更新的数据。

但是,需要注意的是,使用 POST 进行更新可能不遵循严格的 RESTful 约定,但当无法使用标准 PATCH 方法时,它仍然是一种有效的方法。

© www.soinside.com 2019 - 2024. All rights reserved.