Bagikan melalui


Sampel REST API untuk Azure DevOps

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Sebagian besar sampel dalam artikel ini menggunakan token akses pribadi (PATs). PATs adalah contoh ringkas untuk autentikasi. Ada banyak mekanisme autentikasi lain yang tersedia, termasuk Microsoft Authentication Library, OAuth, dan Session token. Untuk informasi selengkapnya tentang mengukur yang paling cocok untuk skenario Anda, lihat Panduan autentikasi.

Untuk informasi selengkapnya, lihat Referensi REST API Azure DevOps Services dan Mulai menggunakan REST API.

Token akses pribadi

Autentikasi dengan Azure DevOps saat Anda menggunakan REST API atau Pustaka .NET.

Mulai menggunakan sampel ini dan buat PAT.

Tip

TRO seperti kata sandi. Rahasiakan mereka. Pastikan Anda menyimpannya di lokasi yang aman setelah PAT Dibuat.

Untuk menyediakan PAT melalui header HTTP, pertama-tama konversikan ke string Base64. Contoh berikut menunjukkan cara mengonversi ke Base64 menggunakan C#. Anda dapat memberikan string yang dihasilkan sebagai header HTTP dalam format berikut:

Authorization: Basic BASE64USERNAME:PATSTRING

REST API

Lihat contoh berikut untuk mendapatkan daftar proyek untuk organisasi Anda melalui 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;
    }   
}

Pustaka Klien .NET

Di sini, kami menggunakan dua pustaka Klien .NET. Pastikan Anda mereferensikan Pustaka Klien .NET berikut dalam proyek .NET Anda.

Lihat contoh berikut untuk mendapatkan daftar proyek untuk organisasi Anda melalui Pustaka Klien .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;                    
}

Tanya Jawab Umum

T: Di mana saya bisa mendapatkan kode sumber untuk sampel kode?

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

T: Di mana saya dapat menemukan informasi selengkapnya tentang pustaka .NET?

J: Lihat gambaran umum pustaka klien.