【问题标题】:How to create a child work package with API in OpenProject如何在 OpenProject 中使用 API 创建子工作包
【发布时间】:2018-04-17 05:40:03
【问题描述】:

在文档中。有一个示例如何在包之间创建某种关系,但没有关于创建父子关系的内容。也许有人知道怎么做?

这是文档中可用的内容:

这些是唯一可用的关系:

如何使父 子关系在打开的项目中看起来像这样:

【问题讨论】:

    标签: api openproject


    【解决方案1】:

    虽然父子关系实际上是关系(在概念上和在数据库中),但它们在 API 中并未被视为关系(主要是出于历史原因)。

    因此,需要通过工作包资源设置父级。到/api/v3/work_packages/:id(成为子工作包)的 PATCH 上的最小有效负载如下所示:

    {
      "lockVersion": [the correct version],
      "_links": {
        "parent": {
          "href": "/api/v3/work_packages/[ID of the work package to become the parent]"
        }
      }
    }
    

    编辑

    API documentation中其实有一个例子。不过,您需要打开 PATCH 的“请求”示例到 `/api/v3/work_packages/:id 才能看到它。

    【讨论】:

    • 这是 WorkPackage 资源当前拥有的 lockVersion。这样做是为了防止用户在他们不注意的情况下进行冲突修改。顺便说一句:该 api 还提供了forms 以帮助客户端防止错误。 createedit 存在特定的形式,因此从那里获取有效负载资源对于客户端来说总是一个好的开始。
    • 我尝试了多个锁号,但我总是收到关于并行访问的错误......这是否意味着我总是使用错误的锁版本?
    • 是的,没错。如果您确定使用正确的 lockVersion(工作包本身通过 GET 获取它时当前具有的那个),我会假设您的有效负载没有正确的结构。
    猜你喜欢
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    相关资源
    最近更新 更多