我们目前正在从我们的整体服务中争取较小的服务。我们的域与票务系统非常相似。我们决定开始域名的取消流程。
我们的取消服务有一个简单的端点“Cancel”,它接收票证的 ID。在内部,我们检索 id,对其执行一些与取消相关的操作,并更新存储中实体的状态。从商店的角度来看,取消门票和实时门票之间的唯一区别在于一些属性。
根据我的阅读,PATCH 似乎是在这种情况下使用的正确动词,因为我只更新资源中的一个简单属性。
PATCH /api/tickets/{id}
Payload {isCancelled: true}
但 isCancelled 不是实体中的实际属性。在有效负载中发送不属于实体的属性是否公平,或者我应该考虑某种其他形式的对该请求建模?我不想将整个实体作为有效负载的一部分发送,因为它很大。
我考虑过创建一个新资源 CancelledTickets,但在我们的域中,我们永远不需要对已取消的票证进行 GET。因此不必创建新资源。
暴露GET
资源的接口不是强制性的。
例如,使用
PUT /api/tickets/{id}/actions/cancel
提交取消请求。我选择PUT
因为有效的取消请求不会超过一个。
希望它有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)