我正在构建一个API以允许API的客户端发送通知来提醒用户更新订单状态。到目前为止,有两个通知:我应该使用哪个资源来保留我的API RESTFul?
- 当用户没有标记接收到的订单;
- 当用户没有标记为完成的顺序。
我想要构建这个API来简化扩展到与订单相关的其他通知,但为此API的客户端保留一个简单的URI。 如何定义我的资源以保持我的API RESTFul?
我在想,我这些结构中的一个:
选项1:
POST: /api/ordernotification/receive/{id}
POST: /api/ordernotification/complete/{id}
选项2(从资源忽略状态并发布它来代替):
POST: /api/ordernotification/?id={id}&statusID={statusID}
编辑
方案2.1(保持关节URI,通过@Jazimov的建议):
POST: /api/ordernotification/{statusID}/{id}.
哪种选择更合适?有一个选项比另一个有什么优势?或者有没有其他的选择我没有想到?
您可以使用:/ api/ordernotification/{statusID}/{id}。这是RESTful,因为你正在使用一个明确的URI,很明显你正在使用ordernotification函数 - 让路由从那里开始。如果您认为合适,您还可以灵活地添加状态。 – Jazimov
也许选项3:'PATCH/api/order/{id}'带'{status:“收到”}“。 ([参考](http://restcookbook.com/HTTP%20Methods/patch/)) – Kenney
@Kenney我认为PATCH将是有用的,如果我想更新订单的状态。在我的例子中,我只想发送一个通知告诉用户这样做。资源“订单”将保持不变。 –