REST API-exempel för Azure DevOps

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

De flesta exempel i den här artikeln använder personliga åtkomsttoken (PAT). PAT är ett kompakt exempel för autentisering. Det finns många andra tillgängliga autentiseringsmekanismer, inklusive Microsoft Authentication Library, OAuth och Sessionstoken. Mer information för att mäta vilket som passar bäst för ditt scenario finns i Autentiseringsvägledning.

Mer information finns i REST API-referens för Azure DevOps Services och Komma igång med REST-API:er.

Personliga åtkomsttoken

Autentisera med Azure DevOps när du använder REST-API:er eller .NET-bibliotek.

Kom igång med de här exemplen och skapa en PAT.

Dricks

PAT:er är som lösenord. Håll dem hemliga. Se till att du sparar dem på en säker plats när din PAT har skapats.

Om du vill ange PAT via en HTTP-rubrik konverterar du den först till en Base64-sträng. I följande exempel visas hur du konverterar till Base64 med C#. Du kan ange den resulterande strängen som en HTTP-rubrik i följande format:

Authorization: Basic BASE64USERNAME:PATSTRING

REST-API

Se följande exempel på hur du hämtar en lista över projekt för din organisation via REST API.

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-klientbibliotek

Här använder vi två av .NET-klientbiblioteken. Se till att du refererar till följande .NET-klientbibliotek i .NET-projektet.

Se följande exempel på hur du hämtar en lista över projekt för din organisation via .NET-klientbibliotek.

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

Vanliga frågor och svar

F: Var kan jag hämta källkoden för kodexemplen?

S: Se https://github.com/Microsoft/vsts-restapi-samplecode.

F: Var hittar jag mer information om .NET-biblioteket?

S: Se översikten över klientbibliotek.