Udostępnij za pośrednictwem


Przykłady interfejsu API REST dla usługi Azure DevOps

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

Większość przykładów w tym artykule używa osobistych tokenów dostępu (PAT). PaTs to kompaktowy przykład uwierzytelniania. Dostępnych jest wiele innych mechanizmów uwierzytelniania, w tym biblioteki uwierzytelniania firmy Microsoft, protokołu OAuth i tokenów sesji. Aby uzyskać więcej informacji, aby ocenić, które najlepiej nadaje się do danego scenariusza, zobacz Wskazówki dotyczące uwierzytelniania.

Aby uzyskać więcej informacji, zobacz Dokumentacja interfejsu API REST usług Azure DevOps Services i Wprowadzenie do interfejsów API REST.

Osobiste tokeny dostępu

Uwierzytelnianie za pomocą usługi Azure DevOps podczas korzystania z interfejsów API REST lub bibliotek platformy .NET.

Rozpocznij pracę z tymi przykładami i utwórz pat.

Napiwek

PaTs są podobne do haseł. Należy utrzymywać je w tajemnicy. Pamiętaj, aby zapisać je w bezpiecznej lokalizacji po utworzeniu tokenu dostępu.

Aby podać identyfikator PAT za pośrednictwem nagłówka HTTP, najpierw przekonwertuj go na ciąg Base64. W poniższym przykładzie pokazano, jak przekonwertować na base64 przy użyciu języka C#. Wynikowy ciąg można podać jako nagłówek HTTP w następującym formacie:

Authorization: Basic BASE64USERNAME:PATSTRING

Interfejs API REST

Zapoznaj się z poniższym przykładem uzyskiwania listy projektów dla organizacji za pośrednictwem interfejsu 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;
    }   
}

Biblioteki klienckie platformy .NET

W tym miejscu używamy dwóch bibliotek klienckich platformy .NET. Upewnij się, że w projekcie .NET odwołujesz się do następujących bibliotek klienckich platformy .NET.

Zapoznaj się z poniższym przykładem uzyskiwania listy projektów dla organizacji za pośrednictwem bibliotek klienckich platformy .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;                    
}

Często zadawane pytania

Pyt.: Gdzie mogę uzyskać kod źródłowy dla przykładów kodu?

1: Zobacz .https://github.com/Microsoft/vsts-restapi-samplecode

Pyt.: Gdzie mogę znaleźć więcej informacji na temat biblioteki .NET?

1: Zapoznaj się z omówieniem bibliotek klienckich.