Share via


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.