【问题标题】: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 并解析响应头以获取延续令牌。