Visual Studio Team Services REST API与文档不匹配?

时间:2016-06-02 23:24:34

标签: javascript api azure-devops

谁能告诉我自己做错了什么?我尝试为Microsoft的团队服务信息中心创建自定义窗口小部件,但它似乎与文档不匹配。

我所做的就是调用一个简单的API,它假设包含现有查询的列表。我将结果记录在控制台中。但是我注销的结果与文档的结果具有不同的属性。

根据这里的.getQueries()API; REST Client APIs。假设返回'IPromise<Contracts.QueryHierarchyItem[]>',QueryHierarchyItem包含此处列出的成员列表; QueryHierarchyItem

我注销的对象看起来像这样:

    Array
    ->Object
    ---> _links
    ------> html
    ---------> href
    ------> self
    ---------> href
    ------> _proto
    ---> createdDate
    ---> hasChildren
    ---> id
    ---> isFolder
    ---> isPublic
    ---> lastModifiedBy
    ------>displayName
    ------>id
    ------>_proto
    ---> lastModifiedDate
    ---> name
    ---> path
    ---> url
    ---> _proto_

它没有QueryHierarchyItem文档中描述的'children'数组或布尔'isDeleted'等属性。为什么会这样?我误解了什么吗?

顺便说一下。以下是我使用的代码:

VSS.require(["TFS/Dashboards/WidgetHelpers", "TFS/WorkItemTracking/RestClient"],
        function(WidgetHelpers, TFS_Wit_WebApi) {
            WidgetHelpers.IncludeWidgetStyles();
            VSS.register("HelloWorldWidget2", function() {
                var projectId = VSS.getWebContext().project.id;

                var getQueryInfo = function(widgetSettings) {


                    //******CALL TO REST API*********//
                    return TFS_Wit_WebApi.getClient().getQueries(projectId)
                        .then(function(queries) {

                            console.log(queries);
                            return true;

                        });
                };

                return {
                    load: function(widgetSettings) {
                        // Set your title
                        var $title = $('h2.title');
                        $title.text('Query Details 3');

                        return getQueryInfo(widgetSettings);
                    }
                }
            });
            VSS.notifyLoadSucceeded();
        });

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

getQueries()有三个可选参数:

  
      
  • 展开:Contracts.QueryExpand。可选的。
  •   
  • 深度:数量。可选的。
  •   
  • includeDeleted:boolean。可选的。
  •   

默认情况下,深度为“0”,这意味着它不包含查询/文件夹中的任何子对象。因此默认情况下它将为空白。您可以查询的最大深度为2.尝试添加这些可选参数,以查看是否可以获得所需的结果。

有关可选参数的默认值,请参阅此链接了解详情:Get a list of queries

答案 1 :(得分:0)

因为我也没有找到答案,所以我今晚玩了这个游戏,并获得了查询,以使用以下代码返回所有现有查询。第三个参数(深度)是一个有趣的东西,例如,如果您输入“ 5”,我不知道它是否会破坏,但是只有3个子级,等等。

“ VSS.require”行中需要使用“合同”模块-缺少相关文档...

VSS.require(["TFS/Dashboards/WidgetHelpers", "TFS/WorkItemTracking/RestClient", "TFS/WorkItemTracking/Contracts"],
    function(WidgetHelpers, TFS_Wit_WebApi, contracts) {
        WidgetHelpers.IncludeWidgetStyles();
        VSS.register("HelloWorldWidget2", function() {
            var projectId = VSS.getWebContext().project.id;
            var getQueryInfo = function(widgetSettings) {

                //******CALL TO REST API*********//
                return TFS_Wit_WebApi.getClient().getQueries(projectId,contracts.All,2,false)
                    .then(
                            function (queries) {
                                console.log(JSON.stringify(queries));
                                return true;
                            });
            };

            return {
                load: function(widgetSettings) {
                    // Set your title
                    var $title = $('h2.title');
                    $title.text('Query Details 3');

                    return getQueryInfo(widgetSettings);
                }
            }
        });
        VSS.notifyLoadSucceeded();
    });