【问题标题】:How to move an item from one parent to another?如何将项目从一个父级移动到另一个父级?
【发布时间】:2016-01-04 06:54:19
【问题描述】:

我有一个父类型调用TaskList。一个任务列表有很多任务。

我遇到的简单案例问题是如何将任务从一个 TaskList 移动到另一个。

我运行搜索查询来查找我想要移动的任务集。然后,任务位于从该搜索返回的 JSON 的 _embedded 属性中。然后我想将这些元素移动到不同的 TaskList。我该怎么做?

我是否可以向 /tasklists/x 提交 POST,其中 _embedded Tasks 作为该请求的主体?

我是否可以向 /tasks/y 提交已设置 tasklist_id 属性的 PATCH?

这样做的正确方法是什么?

谢谢!

【问题讨论】:

    标签: api rest spring-data-rest


    【解决方案1】:

    移动一个任务意味着它已经存在并且有一个 URI。您将该 URI 发布到目标任务列表的 URI。

    适当的内容类型是text/uri

    【讨论】:

      【解决方案2】:

      按照您的建议,您可以按照以下方式提交补丁请求:https://www.rfc-editor.org/rfc/rfc6902#section-4.4

      你的 json 看起来像这样:

      [
          {
              "op": "move",
              "from": "/tasklists/id/tasks/id",
              "path": "/tasklists/anotherId/tasks/id"
          },
          {
              "op": "move",
              "from": "/tasklists/id/tasks/id2",
              "path": "/tasklists/anotherId/tasks/id2"
          }
      ]
      

      希望对你有帮助!

      【讨论】:

      • “移动”操作用于移动 JSON 文档中的属性。
      • 您介意解释一下为什么它在这种情况下不相关吗?在我看来,OP 使用数据的 JSON 表示,因此 PATCH 可能是一个很好的匹配。
      • 您的示例要求任务具有 tasklist 属性,其中包含将被删除的 id 属性,同时添加了 anotherid 属性。这没有任何意义。
      • 你是对的!更改为更一致的东西!但我认为 Json PATCH 在这种情况下确实是要走的路
      • 根据 OP,一个任务有一个tasklist_id。您可以使用 replace 操作更改它。更改任务列表很可能需要add 操作,具体取决于我们不知道的数据结构。我删除了反对票,希望您能提出更好的解决方案。
      【解决方案3】:

      我在服务器上使用 spring-data-rest。我最终做的是向项目 URL 发送一个补丁请求,如下所示:

      {TaskList:"http:/host:port/tasklists/id"}

      这是对我的一些见解的帖子的参考。 https://stackoverflow.com/a/26426909/1174250

      感谢大家的 cmets :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-06
        • 1970-01-01
        • 1970-01-01
        • 2021-12-26
        • 1970-01-01
        • 2020-07-13
        • 1970-01-01
        相关资源
        最近更新 更多