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.