可以说我有Order
资源,并采取了一项操作public ActionResult UpdateOrder(Order order)
。 我正在尝试制作REST
api。我想把这个订单推到下一个状态。部分休息更新
为此,我在后台有一个名为ChangeOrderStatus(string newStatus, int orderId)
的方法,它处理状态变化的一切事情(发送一些邮件,记录日志,将一些东西插入到数据库中等等),并且该方法将从控制器动作中调用。重点在于变更订单状态是一项复杂的操作,而不仅仅是将旧的现金值换成新的。
但我的问题是,我应该写状态变化的新的控制器动作(路线),例如public ActionResult UpdateOrderStatus(string newStatus, int orderId)
并调用ChangeOrderStatus
那里,或者我应该把一切都放在UpdateOrder(Order order)
方法?例如,在这种情况下,UpdateOrder(Order order)
方法的一部分将是:
if (order.Status != oldOrder.Status) { ChangeOrderStatus(order.Status, order.Id); }
我会用第一种方法去做,但有些人告诉我,第二种方法比较好,因为应该有一个条目点资源更新,所以我的状态更新或任何其他更新相关的订单资源应在UpdateOrder
方法...所以我不知道什么是正确的方法...