[英]REST API PATCH without request body
我正在开发用于事件管理的 API。 我有基本的 GET 和 POST 方法,但现在我必须处理事件资源版本。
用户可以使用以下方式编辑所有事件信息:
/event/:eventId
但它也可以取消事件(不是删除它,而是改变它的status
属性)。
我在考虑使用这个端点:
/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.