Megosztás a következőn keresztül:


REST API-minták az Azure DevOpshoz

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

A cikkben szereplő minták többsége személyes hozzáférési jogkivonatokat (PAT-okat) használ. A PAT-k egy kompakt példa a hitelesítésre. Számos más hitelesítési mechanizmus is elérhető, például a Microsoft Authentication Library, az OAuth és a Munkamenet-jogkivonatok. A forgatókönyvnek leginkább megfelelő felmérésről további információt a hitelesítési útmutatóban talál.

További információkért tekintse meg az Azure DevOps Services REST API-referenciáit és a REST API-k használatának első lépéseit.

Személyes hozzáférési jogkivonatok

Hitelesítés az Azure DevOpsszal a REST API-k vagy a .NET-kódtárak használatakor.

Ismerkedjen meg ezekkel a mintákkal, és hozzon létre egy PAT-t.

Tipp.

A PAT-k olyanok, mint a jelszavak. Tartsa azokat titokban. A PAT létrehozása után győződjön meg arról, hogy biztonságos helyre menti őket.

Ha HTTP-fejlécen keresztül szeretné megadni a PAT-t, először konvertálja Base64-sztringgé. Az alábbi példa bemutatja, hogyan konvertálható Base64-be C# használatával. Az eredményül kapott sztringet HTTP-fejlécként a következő formátumban adhatja meg:

Authorization: Basic BASE64USERNAME:PATSTRING

REST API

Tekintse meg az alábbi példát, amely bemutatja, hogy a projektlistát a REST API-val szeretné-e leküldni a szervezet számára.

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-ügyfélkódtárak

Itt két .NET-ügyfélkódtárat használunk. Győződjön meg arról, hogy a .NET-projektben a következő .NET-ügyfélkódtárakra hivatkozik.

Az alábbi példában a .NET-ügyfélkódtárakon keresztül lekért projektek listáját tekintheti meg a szervezet számára.

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

GYIK

K: Hol szerezhetem be a kódminták forráskódját?

Válasz: Lásd a https://github.com/Microsoft/vsts-restapi-samplecode.

K: Hol találhatok további információt a .NET-kódtárról?

Válasz: Tekintse meg az ügyfélkódtárak áttekintését.