【问题标题】:Visual Studio Team Services REST API doesn't match documentation?Visual Studio Team Services REST API 与文档不匹配?
【发布时间】:2020-02-01 14:00:08
【问题描述】:

谁能告诉我我做错了什么?我正在尝试为 Microsoft 的 Team Services 仪表板创建一个自定义小部件,但它似乎与文档不匹配。

我所做的只是调用一个简单的 API,该 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();
        });

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript api azure-devops


    【解决方案1】:

    getQueries() 有三个可选参数:

    • 扩展:Contracts.QueryExpand。可选的。
    • 深度:数字。可选。
    • 包括已删除:布尔值。可选。

    默认情况下,深度为“0”,这意味着它不包括查询/文件夹中的任何子对象。所以默认情况下它将是空白的。并且可以查询的最大深度为2。尝试添加这些可选参数,看看是否能得到你想要的结果。

    可选参数的默认值请参考此链接:Get a list of queries

    【讨论】:

      【解决方案2】:

      因为我也没有找到答案,所以我今晚玩了这个,确实得到了查询来返回所有现有的查询,下面的代码。第三个参数(深度)是可以玩的,我不知道如果你输入“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();
          });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-06
        • 2015-08-16
        • 1970-01-01
        • 2018-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多