Exemplos de API REST para DevOps do Azure
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
A maioria dos exemplos neste artigo usa tokens de acesso pessoal (PATs). Os PATs são um exemplo compacto de autenticação. Há muitos outros mecanismos de autenticação disponíveis, incluindo Microsoft Authentication Library, OAuth e tokens de sessão. Para obter mais informações para avaliar qual é mais adequado para o seu cenário, consulte Diretrizes de autenticação.
Para obter mais informações, consulte Referência da API REST dos Serviços de DevOps do Azure e Introdução às APIs REST.
Tokens de acesso pessoal
Autentique-se com o Azure DevOps ao usar as APIs REST ou as Bibliotecas .NET.
Comece a usar esses exemplos e crie um PAT.
Dica
Os PATs são como senhas. Mantenha-os em segredo. Certifique-se de salvá-los em um local seguro assim que seu PAT for criado.
Para fornecer o PAT por meio de um cabeçalho HTTP, primeiro converta-o em uma cadeia de caracteres Base64. O exemplo a seguir mostra como converter para Base64 usando C#. Você pode fornecer a cadeia de caracteres resultante como um cabeçalho HTTP no seguinte formato:
Authorization: Basic BASE64USERNAME:PATSTRING
API REST
Consulte o exemplo a seguir de como obter uma lista de projetos para sua organização por meio da API REST.
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;
}
}
Bibliotecas de cliente .NET
Aqui, estamos usando duas das bibliotecas de cliente .NET. Certifique-se de fazer referência às seguintes bibliotecas de cliente .NET em seu projeto .NET.
Consulte o exemplo a seguir de como obter uma lista de projetos para sua organização por meio de bibliotecas de cliente .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;
}
Perguntas Frequentes
P: Onde posso obter o código-fonte para os exemplos de código?
R: Veja o https://github.com/Microsoft/vsts-restapi-samplecode.
P: Onde posso encontrar mais informações sobre a biblioteca .NET?
R: Consulte a visão geral das bibliotecas de clientes.