【问题标题】:Using a RESTFUL PUT, how should parent/child entities be updated (or informed)?使用 RESTFUL PUT,应该如何更新(或通知)父/子实体?
【发布时间】:2013-10-14 21:03:31
【问题描述】:

举个简单的例子,我将使用轮胎和汽车。我打算执行 PUT 以提高轮胎的价格。 UI 还包含使用正在更新的轮胎的汽车,因此需要自行更新价格。

原始 PUT 请求在其响应中包含汽车定价是否合适?如果没有,这通常是如何解决的?

【问题讨论】:

    标签: rest put object-graph


    【解决方案1】:

    PUT 更新/tire 价格绝对返回有关它如何更新不同资源(如/car)的详细信息。这样做会使这两个实体混合在一起,并使您的资源表示过于复杂。它还会使客户难以对单个资源进行“原子”更新。

    PUT 响应应该只告诉您更新是否在/tire 资源上成功,并且可能在响应内容中提供轮胎的新表示。一旦对轮胎的PUT 调用返回,客户端(您的用户界面)就可以再次GET/car,它将看到考虑到新轮胎成本的整车新价格。

    【讨论】:

    • 我想这可能是大多数人会同意的答案。那么,多次访问服务器?而且,这是否意味着也必须在前端知道所有关系(假设逻辑以其他方式分配给服务器)?否则,你怎么知道要买哪些车?谢谢!
    • UI 必须了解资源关系,并负责知道在进行更新后要重新获取哪些内容。 REST 并不意味着客户端变成自动机,它只是有助于在客户端和服务器之间创建干净、灵活的交互。
    • 另一方面,如果您使用提供侧载数据的信封格式(例如,由 ember-data 消耗的数据),那么您可以发送:优化行程数正是侧载数据是为了。客户(知道主要响应在哪里)可以根据需要忽略响应的其余部分。
    猜你喜欢
    • 1970-01-01
    • 2016-11-16
    • 2019-12-05
    • 1970-01-01
    • 2013-07-24
    • 2015-01-26
    • 1970-01-01
    • 2021-03-12
    • 2011-12-19
    相关资源
    最近更新 更多