使用 vss-web-extensions-sdk 的发布管理 API 和分页



我正在编写Azure DevOps扩展,想要获取发布列表。

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

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

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

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

SDK 没有 API 来获取带有延续令牌的结果。需要调用发布列表 API 并解析响应标头以获取继续令牌。

最新更新