订单的RESTful域应用程序协议

订单的RESTful域应用程序协议,rest,api-design,restful-url,Rest,Api Design,Restful Url,我在做一个小项目。这是我第一次使用restful服务。我正在创建一个使用restful服务的webshop和应用程序。我创建了一个DAP,用于在网上商店订购衣服 DAP: het DAP中的状态转换: 我想知道我的DAP是否正确,URI隧道是否正确,状态转换是否正确 谢谢你的帮助 编辑:第一篇文章必须是/order而不是order/1大多数人在开始使用restful服务时都会想到,在您的案例中,所有内容都适用于一种资源 事实上,您正在使用3种资源,订单、付款和交付——当您意识到这一点时,您的

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

DAP:

het DAP中的状态转换:

我想知道我的DAP是否正确,URI隧道是否正确,状态转换是否正确

谢谢你的帮助


编辑:第一篇文章必须是/order而不是order/1

大多数人在开始使用restful服务时都会想到,在您的案例中,所有内容都适用于一种资源

事实上,您正在使用3种资源,
订单
付款
交付
——当您意识到这一点时,您的选择突然扩大

现在你可以这样做:

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,最终由您选择
***这是有意义的,因为您只会创建与其他资源相关的付款或交付

然后您可以访问或修改其他资源,例如:

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

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

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

第一篇文章是创建新订单吗?URI/order/1在实体创建之前就存在了?哦,我的错。这必须是我的订单