使用vss-web-extensions-sdk进行发布管理api和分页

时间:2018-09-15 11:34:22

标签: typescript azure-devops azure-devops-extensions

我正在编写azure devops扩展,并希望获取发行列表。

我正在使用具有getReleases()方法的“ ReleaseManagement / Core / RestClient”中的RestClient。

它具有continuationToken作为参数,但是我没有找到任何示例如何从响应头中获取该令牌。

问题:在获取第一批后,如何获取下50个发行版的延续令牌?

2 个答案:

答案 0 :(得分:0)

在第一次调用API之后,continuationToken位于响应标头中:

x-ms-continuationtoken: xxxx

您可以使用rest api检索标头​​信息。这是一个供您参考的示例:

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace GetReleases
{
    class Program
    {
        public static void Main()
        {
            Task t = GetReleases();
            Task.WaitAll(new Task[] { t });
        }
        private static async Task GetReleases()
        {
            try
            {
                var username = "xxxxx";
                var password = "******";

                using (var client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Accept.Add(
                        new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                        Convert.ToBase64String(
                            System.Text.ASCIIEncoding.ASCII.GetBytes(
                                string.Format("{0}:{1}", username, password))));

                    using (HttpResponseMessage response = client.GetAsync(
                                "https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases?api-version=4.1-preview.6").Result)
                    {
                        response.EnsureSuccessStatusCode();
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}

答案 1 :(得分:0)

SDK没有api来获得带有延续令牌的结果。您需要调用release List api并解析响应标头以获取连续令牌。