Exemples d’API REST pour Azure DevOps

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

La plupart des exemples de cet article utilisent des jetons d’accès personnels (PAT). Les PAT sont un exemple compact pour l’authentification. Il existe de nombreux autres mécanismes d’authentification disponibles, notamment la bibliothèque d’authentification Microsoft, OAuth et les jetons de session. Pour plus d’informations sur la jauge qui convient le mieux à votre scénario, consultez les instructions d’authentification.

Pour plus d’informations, consultez Informations de référence sur l’API REST Azure DevOps Services et Prise en main des API REST.

Jetons d’accès personnels

Authentifiez-vous auprès d’Azure DevOps lorsque vous utilisez les API REST ou les bibliothèques .NET.

Prise en main de ces exemples et création d’un PAT.

Conseil

Les PAT sont similaires aux mots de passe. Gardez-les secrètes. Veillez à les enregistrer dans un emplacement sécurisé une fois que votre pater est créé.

Pour fournir le PAT via un en-tête HTTP, commencez par le convertir en chaîne Base64. L’exemple suivant montre comment effectuer une conversion en Base64 à l’aide de C#. Vous pouvez fournir la chaîne obtenue en tant qu’en-tête HTTP au format suivant :

Authorization: Basic BASE64USERNAME:PATSTRING

API REST

Consultez l’exemple suivant d’obtention d’une liste de projets pour votre organisation via 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;
    }   
}

Bibliothèques clientes .NET

Ici, nous utilisons deux des bibliothèques clientes .NET. Veillez à référencer les bibliothèques clientes .NET suivantes au sein de votre projet .NET.

Consultez l’exemple suivant d’obtention d’une liste de projets pour votre organisation via des bibliothèques clientes .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;                    
}

FAQ

Q : Où puis-je obtenir le code source pour les exemples de code ?

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

Q : Où puis-je trouver plus d’informations sur la bibliothèque .NET ?

R : Consultez la vue d’ensemble des bibliothèques clientes.