REST-API-Beispiele für Azure DevOps

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

Die meisten Beispiele in diesem Artikel verwenden persönliche Zugriffstoken (PATs). PATs sind ein kompaktes Beispiel für die Authentifizierung. Es sind viele andere Authentifizierungsmechanismen verfügbar, einschließlich Microsoft-Authentifizierungsbibliothek, OAuth und Sitzungstoken. Weitere Informationen zum Messen, was für Ihr Szenario am besten geeignet ist, finden Sie unter Authentifizierungsleitfaden.

Weitere Informationen finden Sie unter Azure DevOps Services REST API Reference and Get started with REST APIs.

Persönliche Zugriffstoken

Authentifizieren Sie sich bei Azure DevOps, wenn Sie die REST-APIs oder .NET-Bibliotheken verwenden.

Erste Schritte mit diesen Beispielen und Erstellen eines PAT.

Tipp

PATs sind wie Kennwörter. Bewahren Sie sie geheim auf. Stellen Sie sicher, dass Sie sie an einem sicheren Ort speichern, nachdem Ihr PAT erstellt wurde.

Um den PAT über einen HTTP-Header bereitzustellen, konvertieren Sie ihn zuerst in eine Base64-Zeichenfolge. Das folgende Beispiel zeigt, wie Sie mit C# in Base64 konvertieren. Sie können die resultierende Zeichenfolge als HTTP-Header im folgenden Format bereitstellen:

Authorization: Basic BASE64USERNAME:PATSTRING

REST-API

Im folgenden Beispiel wird eine Liste von Projekten für Ihre Organisation über die REST-API angezeigt.

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;
    }   
}

.NET-Clientbibliotheken

Hier verwenden wir zwei der .NET-Clientbibliotheken. Stellen Sie sicher, dass Sie in Ihrem .NET-Projekt auf die folgenden .NET-Clientbibliotheken verweisen.

Im folgenden Beispiel wird eine Liste von Projekten für Ihre Organisation über .NET-Clientbibliotheken angezeigt.

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;                    
}

Häufig gestellte Fragen

F: Wo erhalte ich den Quellcode für die Codebeispiele?

A: Siehe die https://github.com/Microsoft/vsts-restapi-samplecode.

F: Wo finde ich weitere Informationen zur .NET-Bibliothek?

A: Sehen Sie sich die Übersicht über Clientbibliotheken an.