Exemplos de API REST para Azure DevOps
Serviços de DevOps do Azure | 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 a Biblioteca de Autenticação da Microsoft, OAuth e tokens de sessão. Para obter mais informações para avaliar qual é o 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 com esses exemplos e crie um PAT.
Gorjeta
Os PATs são como senhas. Mantenha-as em segredo. Certifique-se de que os guarda num local seguro assim que o PAT é criado.
Para fornecer a PAT através de um cabeçalho HTTP, primeiro converta-a numa 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
Veja o exemplo a seguir de como obter uma lista de projetos para sua organização via 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;
}
FAQs
P: Onde posso obter o código-fonte para os exemplos de código?
R: Veja o https://github.com/Microsoft/vsts-restapi-samplecodearquivo .
P: Onde posso encontrar mais informações sobre a biblioteca .NET?
R: Consulte a visão geral das bibliotecas cliente.