devops-rest APi-$ expand不适用于“工作项-批量获取工作项”

我想访问选定工作项中的一些数据。
下面是我的工作代码。

function postApiData(ApiUrl,responseBody,token) {
            var res = '';
            $.ajax({
                type: 'POST',async: false,url: ApiUrl,contentType: 'application/json',data: JSON.stringify(responseBody),cache: false,dataType: 'json',beforeSend: function (xhr) {
                    xhr.setRequestHeader("Authorization","Basic " + btoa("" + ":" + _token));
                },}).done(function (data) {
                res = data;
            });
        return res;
    };

 var d = {
                    "ids": itemlist,"fields": ["System.Id","System.WorkItemType","System.Title","System.AssignedTo","System.State","System.Tags","cust.PID","cust.Product","cust.ReleasedToProduction"]
                };
                var itemdata = postApiData('https://dev.azure.com/COMP/products/_apis/wit/workitemsbatch?$expand=relations&api-version=5.1',d,'');

但是,$ expand不能在这里建立关系。查询给出结果,并且始终忽略$ expand。

我也试图在请求正文中传递$ expand,但是它也不起作用。有人可以在这里指导吗?

yaoji2011 回答:devops-rest APi-$ expand不适用于“工作项-批量获取工作项”

这是因为如果expand的值为fields,则expand参数不能与relations参数一起使用。

您可以在Postman中使用请求正文执行此api。您会清楚地看到为什么不能应用的信息。

enter image description here


要使用您的API,如果在请求正文中指定fields,则不应再使用expand,反之亦然。这是设计好的,并且已经硬编码到了我们的脚本中。如果不是$expandNone,则不允许另一个Links值。

对于$expandNoneRelationsFieldsLinksAll)的5个值,仅{{1} }和None可以在API中成功使用Links。这是一条通用规则,适用于所有API,包括此one


此外,请在请求正文中使用fields,而不要在描述的文档所示的URI中使用$expand=Relations。在这里,如果您在URI中使用它,则服务器脚本将不会使用它,因为此API调用的方法没有此参数。另一个可以在URI中使用$ expand的API(正常情况下,我们会提到并显示它是否可以在文档的URI中使用),相应的脚本具有可以访问URI传递的值的参数

因此,在这里,请在请求正文中使用$expand=Relations,然后您将获得所有字段及其所有关系的结果。

本文链接:https://www.f2er.com/3165862.html

大家都在问