RESTful 订单的域应用协议

RESTful Domain Application Protocol for an order

我正在做一个小项目。这是我第一次使用 restful 服务。我正在创建一个使用 restful 服务的网上商店和应用程序。我创建了一个用于在网上商店订购衣服的 DAP。

行动党:

het DAP 中的状态转换:

我想知道我是否制作了正确的 DAP,URI 隧道是否正确以及状态转换是否正确。

感谢您的帮助!

编辑:第一个 POST 必须是 /order 而不是 order/1

大多数人在开始使用 restful 服务时遇到的问题是认为一切都适用于一种资源,在您的情况下是顺序。

事实上,您正在使用 3 种资源,orderspaymentsdeliveries - 当您意识到这一点时,您的选择就会突然扩大。

现在你可以这样做:

POST /order  (creates order, returns Order Id)
POST /order/{OrderId}/cancel (updates order to cancelled **)
POST /order/{OrderId}/payments (creates a payment for Order, returns Payment Id ***)
POST /payments/{PaymentId}/deliveries (creates a delivery for a Payment, returns Delivery Id ***)

** 这是 RESTful 设计中值得商榷的一点,也可以是 PUT,最终选择权在你。 there is a ton of discussions on the topic
*** 这是有道理的,因为您只会创建与另一个资源相关的付款或交付

然后您可以这样访问或修改其他资源:

GET /payments
GET /payments/{PaymentId}
DELETE /payments/{PaymentId}
PUT /payments/{PaymentId}

GET /deliveries
GET /deliveries/{DeliveryId}
DELETE /deliveries/{DeliveryId}
PUT /deliveries/{DeliveryId}

希望这能给你更多的想法。