Delen via


REST API-voorbeelden voor Azure DevOps

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

In de meeste voorbeelden in dit artikel worden persoonlijke toegangstokens (PAT's) gebruikt. Hoewel PAW's een compact voorbeeld zijn voor verificatie, raden we u niet aan deze te gebruiken voor productietoepassingen. Er zijn veel andere verificatiemechanismen beschikbaar, waaronder Microsoft Authentication Library, OAuth en sessietokens. Zie Verificatierichtlijnenvoor meer informatie om te bepalen wat het meest geschikt is voor uw scenario.

Zie Azure DevOps REST API Reference and Get started with REST API's (Aan de slag met REST API's) voor meer informatie.

Authenticatie

Verifieer met Azure DevOps wanneer u de REST API's of .NET-bibliotheken gebruikt door de volgende stappen uit te voeren:

GET-aanvraagvoorbeelden

De volgende C# en curl-aanvragen retourneren een JSON-antwoord met de lijst met alle projecten in een opgegeven organisatie:

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;
    }   
}
-u username:PAT https://dev.azure.com/{organization}/_apis/projects?api-version=6.0

VOORBEELD VAN POST-aanvraag

Met de volgende curl-aanvraag maakt u een nieuw werkitem van het type Taak in een opgegeven project:

-u username:PAT -X POST -H "Content-Type: application/json" \
-d '{"fields": {"System.Title": "New Work Item"}}' \
https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/$Task?api-version=6.0

PUT-aanvraagvoorbeeld

Met de volgende curl-aanvraag wordt een bestaand werkitem bijgewerkt door de status te wijzigen in 'Wordt uitgevoerd':

 -u username:PAT -X PATCH -H "Content-Type: application/json-patch+json" \
-d '[{"op": "add", "path": "/fields/System.State", "value": "In Progress"}]' \
https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{id}?api-version=6.0

Voorbeeld van DELETE-aanvraag

Met de volgende curl-aanvraag wordt een bestaand werkitem uit een opgegeven project verwijderd:

-u username:PAT -X DELETE \
https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{id}?api-version=6.0

.NET-clientbibliotheken

Hier gebruiken we twee .NET-clientbibliotheken. Zorg ervoor dat u verwijst naar de volgende .NET-clientbibliotheken in uw .NET-project.

In het volgende voorbeeld wordt een lijst met projecten voor uw organisatie via .NET-clientbibliotheken weergegeven:

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

Veelgestelde vragen

V: Waar kan ik de broncode voor de codevoorbeelden ophalen?

A: Zie de https://github.com/Microsoft/vsts-restapi-samplecode.

V: Waar vind ik meer informatie over de .NET-bibliotheek?

A: Zie het overzicht van clientbibliotheken.