You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Request Tracker REST API 2.0更新工单Owner字段?

更新Request Tracker REST API 2.0工单Owner字段的正确方式

你遇到的问题很常见——RT的REST2 API对于关联字段(比如Owner这类指向用户的字段)的更新逻辑和普通顶层字段不一样,直接在工单根对象里传{ "Owner": { "id": "root" } }是行不通的。下面是两种推荐的实现方式:

方法1:直接更新Owner关联端点

REST2为每个关联字段提供了单独的资源端点,你可以直接向工单的Owner端点发送PUT请求来更新:

curl -X PUT -H "Content-Type: application/json" -d '{ "id": "root" }' -H 'Authorization: token XXX_Token_XXX' 'http://XXX_RT_URL_XXX/REST/2.0/ticket/6/Owner'

这个方法的逻辑是直接操作工单的Owner关联资源,请求体里只需要传入目标用户的id(或者用户名,比如"name": "root"也可以)。

方法2:在工单更新请求中使用关联引用格式

如果你想在一次请求中同时更新工单的多个字段(包括Owner),需要用REST2的关联引用格式,通过_url字段指向目标用户的资源:

curl -X PUT -H "Content-Type: application/json" -d '{
  "Subject": "更新后的工单标题",
  "Owner": { "_url": "/REST/2.0/user/root" }
}' -H 'Authorization: token XXX_Token_XXX' 'http://XXX_RT_URL_XXX/REST/2.0/ticket/6'

或者也可以用用户的数字ID来引用:

curl -X PUT -H "Content-Type: application/json" -d '{
  "Owner": { "_url": "/REST/2.0/user/1" }
}' -H 'Authorization: token XXX_Token_XXX' 'http://XXX_RT_URL_XXX/REST/2.0/ticket/6'

这里的核心是:关联字段不能直接传{ "id": "root" },必须通过_url指向对应的用户资源端点,REST2才能正确识别并处理关联关系。

另外需要注意几个细节:

  • 确保你的API令牌拥有修改工单Owner的权限
  • 如果用用户名匹配,要保证该用户名在RT系统中唯一,避免出现匹配错误
  • 可以先通过GET /REST/2.0/user/root请求确认用户资源的端点是否正确,避免拼写失误

内容的提问来源于stack exchange,提问作者Arko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:45:34