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.