Esempi di API REST per Azure DevOps

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

La maggior parte degli esempi in questo articolo usa token di accesso personali (PAT). Le reti AP sono un esempio compatto per l'autenticazione. Sono disponibili molti altri meccanismi di autenticazione, tra cui Microsoft Authentication Library, OAuth e Token di sessione. Per altre informazioni sul misuratore più adatto per lo scenario, vedere Linee guida per l'autenticazione.

Per altre informazioni, vedere Informazioni di riferimento sulle API REST di Azure DevOps Services e Introduzione alle API REST.

Token di accesso personali

Eseguire l'autenticazione con Azure DevOps quando si usano le API REST o le librerie .NET.

Introduzione a questi esempi e creazione di un token di accesso personale.

Suggerimento

Le password sono simili alle password. Tenerli segreti. Assicurarsi di salvarli in una posizione sicura dopo la creazione del pat.

Per fornire il pat tramite un'intestazione HTTP, convertirlo prima in una stringa Base64. L'esempio seguente illustra come eseguire la conversione in Base64 usando C#. È possibile specificare la stringa risultante come intestazione HTTP nel formato seguente:

Authorization: Basic BASE64USERNAME:PATSTRING

REST API

Vedere l'esempio seguente per ottenere un elenco di progetti per l'organizzazione tramite l'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;
    }   
}

Librerie client .NET

In questo caso si usano due librerie client .NET. Assicurarsi di fare riferimento alle librerie client .NET seguenti all'interno del progetto .NET.

Vedere l'esempio seguente per ottenere un elenco di progetti per l'organizzazione tramite librerie client .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;                    
}

Domande frequenti

D: Dove è possibile ottenere il codice sorgente per gli esempi di codice?

R: Vedere .https://github.com/Microsoft/vsts-restapi-samplecode

D: Dove è possibile trovare altre informazioni sulla libreria .NET?

R: Vedere la panoramica delle librerie client.