Workfront 和 popt API

Workfront and the popt API

好的,这是我的问题。如果有人问过这个问题,请原谅我。我在该网站上进行了搜索,但找不到我要找的东西。我对 Workfront 非常、非常、非常陌生,他们的文档在我想做的事情方面似乎相当有限。

我知道如何从我的数据库中获取查询并将其转换为 JSON。

我可以登录 Workfront 并创建自定义表单。我可以给它添加一个下拉列表。

我需要做的是将 JSON 放入页面的下拉列表中。所以我什至不知道 popt 是否适合 API 使用。

我知道我可能需要使用

/attask/api/v7.0/popt?method=post&updates=[{json obj 1}, {json obj 2}]

但我不知道如何将它与正确的下拉菜单相关联。

如果有人能指出正确的方向,我将不胜感激。

根据 Brian 的以下请求:

有办法"bulk add"吗?你能解释一下参数吗? $option 是将显示在下拉列表中的字符串吗?标签值呢?如何找到下拉列表的ID?

编辑添加

感谢@Brian R 的帮助。

我想知道下拉列表中的选择数量是否有限制。我的列表将包含一千多个 "rows",因此我需要它能够包含一千多个条目。

另外,有没有办法 "bulk insert",一次将多个 JSON 元素传递给 api?

看起来我应该使用 PUT 而不是 POST 来保存 new 数据,但是我如何摆脱 数据?

我很惊讶 popt 是一个标签...

明确地说,您不想在下拉列表中创建新选项(它的大小有限且内容固定),但您确实想为每个项目分配值,因此如果有人选择选项 'bob' 作为人类可读的选择,它将被分配一个您生成的 JSON 对象。是吗?

在这种情况下,您需要单独更新每个 popt。因此,您首先需要通过以下调用获取下拉列表中每个选项的列表:

GET https://<url>.my.workfront.com/attask/api/v7.0/PARAM/<ID of the parameter(dropdown list)>?fields=parameterOptions&apiKey=<key>

然后,您将遍历每个 result.parameterOptions 并设置值:

foreach($option in $result.parameterOptions){
{    
  PUT https://<url>.my.workfront.com/attask/api/v7.0/POPT/<$option>?value=<json value>&label=<human readable choice>&apiKey=<key>
}

要解决您在下面的响应中,其中参数为空(具有空值的下拉列表),您只需要自己创建 popt。您首先需要确定如何从 JSON 对象中提取数据,因为每个下拉选项至少有一个且不超过两个条目(人类可读的选择,这是强制性的,以及分配给所述选择的可选值)。

foreach $element in $JSON
{
  $label = <extract label from $element>
  [$value = <optional, extract value from $element>]
  POST https://<url>.my.workfront.com/attask/api/v7.0/POPT?<label=$label>[<&value=$value>]&parameterID=<ID of dropdown list>&apiKey=<key>
}