订单的RESTful域应用程序协议

时间:2017-11-02 20:45:59

标签: rest api-design restful-url

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

DAP: enter image description here

het DAP中的状态转换:

enter image description here

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

谢谢你的帮助!

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

1 个答案:

答案 0 :(得分:2)

大多数人在开始使用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}

希望这会给你一些更多的想法。