다음을 통해 공유


Azure DevOps에 대한 REST API 샘플

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

이 문서의 대부분의 샘플은 PAT(개인용 액세스 토큰)를 사용합니다. PAT는 인증을 위한 컴팩트한 예입니다. Microsoft 인증 라이브러리, OAuth 및 세션 토큰을 포함하여 사용할 수 있는 다른 많은 인증 메커니즘이 있습니다. 시나리오에 가장 적합한 측정에 대한 자세한 내용은 인증 지침을 참조하세요.

자세한 내용은 Azure DevOps Services REST API 참조REST API 시작 참조를 참조하세요.

개인용 액세스 토큰

REST API 또는 .NET 라이브러리를 사용하는 경우 Azure DevOps를 사용하여 인증합니다.

이러한 샘플을 시작하고 PAT를 만듭니다.

PAT는 암호와 같습니다. 비밀을 유지합니다. PAT가 만들어지면 안전한 위치에 저장해야 합니다.

HTTP 헤더를 통해 PAT를 제공하려면 먼저 BASE64 문자열로 변환합니다. 다음 예제에서는 C#을 사용하여 Base64로 변환하는 방법을 보여줍니다. 결과 문자열을 다음 형식으로 HTTP 헤더로 제공할 수 있습니다.

Authorization: Basic BASE64USERNAME:PATSTRING

REST API

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 클라이언트 라이브러리

여기서는 두 개의 .NET 클라이언트 라이브러리를 사용하고 있습니다. .NET 프로젝트 내에서 다음 .NET 클라이언트 라이브러리를 참조해야 합니다.

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

FAQ

Q: 코드 샘플의 소스 코드는 어디서 가져올 수 있나요?

A: 를 참조하세요 https://github.com/Microsoft/vsts-restapi-samplecode.

Q: .NET 라이브러리에 대한 자세한 내용은 어디에서 찾을 수 있나요?

A: 클라이언트 라이브러리의 개요를 참조하세요.