没有请求正文的REST API PATCH

时间:2017-10-26 13:59:19

标签: rest api patch

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

用户可以使用以下方式编辑所有活动信息:

  • PUT /event/:eventId

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

我正在考虑使用此终端:

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

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

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

因此,对PATCH方法不发送任何主体是否可能而不是一个坏习惯?感谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

来扩展API。