我正在尝试使用补丁方法使用以下数据更新TFS工作项字段:
super.ViewDidLoad()
但是它给了我以下错误:
您必须在请求正文中传递有效的补丁文档。 如果我使用“patch”方法创建工作项,它可以工作,但在更新工作项的情况下会失败。
答案 0 :(得分:1)
我已经测试过我的PATCH方法,没有问题发生:
[
{
"method": "PATCH",
"uri": "/_apis/wit/workItems/19?api-version=1.0",
"headers": {
"Content-Type": "application/json-patch+json"
},
"body": [
{
"op": "add",
"path": "/fields/System.Title",
"value": "JavaScript implementation for Microsoft Account"
}
]
}
]
请查看下面的示例,该示例用于更新两个工作项以将其状态更改为“已移除”,然后与您的API进行比较以查看是否缺少某些内容:
POST https://fabrikam.visualstudio.com/DefaultCollection/_apis/wit/$batch?api-version=1.0
Content-Type: application/json
[
{
"method": "PATCH",
"uri": "/_apis/wit/workItems/284?api-version=1.0",
"headers": {
"Content-Type": "application/json-patch+json"
},
"body": [
{
"op": "add",
"path": "/fields/System.State",
"value": "Removed"
}
]
},
{
"method": "PATCH",
"uri": "/_apis/wit/workItems/283?api-version=1.0",
"headers": {
"Content-Type": "application/json-patch+json"
},
"body": [
{
"op": "add",
"path": "/fields/System.State",
"value": "Removed"
}
]
}
]
答案 1 :(得分:0)
这可能与您正在使用的软件包版本有关。 nuget.org上针对TFS API相关组件的最新稳定版本是15.112.1。但事实证明,对于TFS2017直到更新2,这些包的所有15.something及以上版本都不适用于任何有关PATCH操作的操作。与TFS 2017兼容的最后一个稳定版本是14.102.0。这个版本完全正常,就像文档所说的那样。
希望它有所帮助。