没有请求正文的 REST API PATCH

Eli*_*cia 6 api rest patch

我正在开发用于事件管理的 API。我有基本的 GET 和 POST 方法,但现在我必须处理事件资源版本。

用户可以使用以下方法编辑所有事件信息:

  • /event/:eventId

但它也可以取消事件(不是删除它,而是改变它的status属性)。

我正在考虑使用这个端点:

  • PATCH/event/:eventId并发送一个只有新status属性值的正文。

我认为这是一个很好的方法,但后来我注意到状态只能设置为CANCELLED,在某些情况下,事件的其他允许状态会在业务逻辑中自动更改。

因此status,如果您只能将其更改为一个可能的值,则发送该字段根本没有意义。

因此,不向 PATCH 方法发送任何主体是否可能并且不是一种坏习惯?谢谢。

use*_*777 5

我建议将 PATCH 端点设置为 /event/{eventId}/status。无需将有效负载放入您的 PATCH 请求中,有效负载是可选的。

API 应该对最终用户有意义。使用 PATCH,您可以让用户知道您想要对提供的 eventId 的事件记录进行部分更新,并且您想要执行操作的属性是状态。

此外,请确保您的 API 文档提供状态将默认设置为 CANCELED 的详细信息。将来,如果需要,您可以通过添加有效负载 {"status": "CANCELLED | ENABLED | .." } 来扩展 API