使用Azure DevOps API删除子迭代时触发根分类节点不可修改报错
解决Azure DevOps迭代删除API报错VS402380的问题
问题原因
你的API请求路径和参数使用存在错误:
- 直接调用了迭代分类节点的根路径
/iterations,搭配$reclassifyId参数后,系统误判为要修改根迭代节点(ID:2226)的子节点归属规则,而根节点创建后不允许修改,因此触发VS402380错误。 $reclassifyId的作用是指定删除目标节点后,其子节点要迁移到的目标节点ID,并非用来指定要删除的节点ID,你混淆了参数的用途。
正确解决方案
要删除Root/Sub-group下的目标迭代,必须明确指定要删除的节点路径或ID,再根据需求决定是否使用$reclassifyId参数。
方式1:通过节点层级路径删除
在URL中直接指定迭代的完整层级路径:
DELETE https://dev.azure.com/{myorg}/{myproject}/_apis/wit/classificationnodes/iterations/Root/Sub-group/[目标迭代名称]?api-version=7.1
如果需要将该迭代下的子节点迁移到其他节点,添加$reclassifyId参数:
DELETE https://dev.azure.com/{myorg}/{myproject}/_apis/wit/classificationnodes/iterations/Root/Sub-group/[目标迭代名称]?$reclassifyId=2417&api-version=7.1
方式2:通过节点ID删除
若已知目标迭代的ID,直接在路径末尾传入该ID:
DELETE https://dev.azure.com/{myorg}/{myproject}/_apis/wit/classificationnodes/iterations/[目标迭代ID]?api-version=7.1
如需迁移子节点,同样添加$reclassifyId参数:
DELETE https://dev.azure.com/{myorg}/{myproject}/_apis/wit/classificationnodes/iterations/[目标迭代ID]?$reclassifyId=2417&api-version=7.1
关键注意事项
- 请求路径必须指向具体的目标迭代节点,不能直接使用根节点路径
/iterations。 $reclassifyId是可选参数,仅当需要保留被删除节点的子节点时使用,传入的是接收子节点的目标节点ID。
内容的提问来源于stack exchange,提问作者JeffPriz
相关产品推荐
相关产品推荐

