Azure DevOps 的 REST API 示例

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

本文中的大多数示例都使用个人访问令牌(PAT)。 PAT 是用于身份验证的紧凑示例。 有许多其他身份验证机制可用,包括 Microsoft 身份验证库、OAuth 和会话令牌。 有关衡量最适合方案的详细信息,请参阅 身份验证指南

有关详细信息,请参阅 Azure DevOps Services REST API 参考REST API 入门。

个人访问令牌

使用 REST API 或 .NET 库时,使用 Azure DevOps 进行身份验证。

这些示例入门并 创建 PAT

提示

PAT 类似于密码。 需将访问凭据保密。 创建 PAT 后,请确保将它们保存在安全位置。

若要通过 HTTP 标头提供 PAT,请先将其转换为 Base64 字符串。 以下示例演示如何使用 C# 转换为 Base64。 可以采用以下格式提供生成的字符串作为 HTTP 标头:

Authorization: Basic BASE64USERNAME:PATSTRING

REST API

请参阅以下示例,了解如何通过 REST API 获取组织的项目列表。

using System.Net.Http;
using System.Net.Http.Headers;

...

//encode your personal access token                   
string credentials = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "", personalAccessToken)));

ListOfProjectsResponse.Projects viewModel = null;

//use the httpclient
using (var client = new HttpClient())
{
    client.BaseAddress = new Uri($"https://dev.azure.com/{OrgName}/");  //url of your organization
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials); 

    //connect to the REST endpoint            
    HttpResponseMessage response = client.GetAsync("_apis/projects?stateFilter=All&api-version=1.0").Result;
          
    //check to see if we have a successful response
    if (response.IsSuccessStatusCode)
    {
        //set the viewmodel from the content in the response
        viewModel = response.Content.ReadAsAsync<ListOfProjectsResponse.Projects>().Result;
                
        //var value = response.Content.ReadAsStringAsync().Result;
    }   
}

.NET 客户端库

在这里,我们将使用两个 .NET 客户端库。 请确保在 .NET 项目中引用以下 .NET 客户端库。

请参阅以下示例,了解如何通过 .NET 客户端库获取组织的项目列表。

using Microsoft.TeamFoundation.Core.WebApi;
using Microsoft.VisualStudio.Services.Common;

...

//create uri and VssBasicCredential variables
Uri uri = new Uri(url);
VssBasicCredential credentials = new VssBasicCredential("", personalAccessToken);

using (ProjectHttpClient projectHttpClient = new ProjectHttpClient(uri, credentials))
{
    IEnumerable<TeamProjectReference> projects = projectHttpClient.GetProjects().Result;                    
}

常见问题

问:在哪里可以获取代码示例的源代码?

答:请参阅https://github.com/Microsoft/vsts-restapi-samplecode

问:在哪里可以找到有关 .NET 库的详细信息?

答:请参阅 客户端库概述。