【问题标题】:Release management api & pagination using vss-web-extensions-sdk使用 vss-web-extensions-sdk 发布管理 API 和分页
【发布时间】:2018-09-15 11:34:22
【问题描述】:

我正在编写 azure devops 扩展并想要获取版本列表。

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

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

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

【问题讨论】:

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


【解决方案1】:

continuationToken 在第一次调用 API 后的响应头中:

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());
            }
        }
    }
}

【讨论】:

【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    相关资源
    最近更新 更多