繁体   English   中英

没有请求正文的 REST API 补丁

[英]REST API PATCH without request body

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

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

  • PUT /event/:eventId

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

我在考虑使用这个端点:

  • PATCH /event/:eventId并发送仅包含新status属性值的正文。

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

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

因此,不向 PATCH 方法发送正文是否可能并且不是一个坏习惯? 谢谢。

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

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

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

我建议将有效负载添加到 PATCH /event/:eventId的主体。

如果在任何情况下您需要添加一个新属性来更新事件的属性,您将无法决定是否需要更新状态。 这可以在未来证明您的端点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM