TFS更新工作项错误:您必须在请求正文中传递有效的修补程序文档

时间:2015-12-01 07:10:07

标签: tfs

我正在尝试使用补丁方法使用以下数据更新TFS工作项字段:

super.ViewDidLoad()

但是它给了我以下错误:

  

您必须在请求正文中传递有效的补丁文档。   如果我使用“patch”方法创建工作项,它可以工作,但在更新工作项的情况下会失败。

2 个答案:

答案 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。这个版本完全正常,就像文档所说的那样。

希望它有所帮助。