gpt4 book ai didi

REST 合并资源 - PUT 上的多个更新

转载 作者:行者123 更新时间:2023-12-03 10:10:29 24 4
gpt4 key购买 nike

我不相信这个post完全回答了这个问题。

情况

  • 端点公开单个资源,ID 是唯一的。
  • 名称是唯一的,但可以更改。
  • 外部应用程序可以并且确实存储对资源 ID 的引用。

  • 问题

    有时会创建重复的资源并最终被引用。

    解决方案

    公开允许“合并”资源的端点。这将执行以下操作:
  • 将“xyz”(被淘汰的资源)标记为“abc”(被保留的资源)的副本。
  • 将“abc”更新为合并资源的外观。
  • 任何检索 'xyz' 的 GET 都会导致 302 重定向到 'abc'

  • 问题

    怎样才能安心地做到这一点?我想做类似的事情:
    PUT http://endpoint/resource/{id1}/merge/{id2}

    {
    //new merged resource
    }

    哪里 id1 =正在保留的资源和 id2 =资源是。或者,如果更有意义,这可能反之亦然。

    然而我担心的是合并行为会更新 PUT 上的两个资源。这是否违反了规则,是否有更好的规定方法来做到这一点?

    最佳答案

    在我看来,RESTful 范式非常适合为人们提供有关您的 API 可能行为方式的指导,但将您所能做的一切都强加于其中并不会带来更好的开发人员体验。

    除了标准的四个动词之外,我更愿意看到记录良好的 POST 操作。这是我的投票:

    POST http://endpoint/resources/{id1}/merge
    {
    "merge_id": {id2}
    }

    这也让您可以自由地支持多 ID 版本,如果这很常见的话。
    POST http://endpoint/resources/{id1}/merge
    {
    "merge_ids": [
    {id2}, {id3}, {id4}
    ]
    }

    关于REST 合并资源 - PUT 上的多个更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28159112/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com