【问题标题】:RESTful Domain Application Protocol for an order订单的 RESTful 域应用协议
【发布时间】:2017-11-02 20:45:59
【问题描述】:

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

磷酸二铵:

het DAP 中的状态转换:

我想知道我是否做出了正确的 DAP、URI 隧道是否正确以及状态转换是否正确。

感谢您的帮助!

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

【问题讨论】:

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

标签: rest api-design restful-url


【解决方案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}

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

【讨论】:

    猜你喜欢
    • 2014-11-08
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多