Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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. Bár a PAT-k egy kompakt példa a hitelesítéshez, nem javasoljuk, hogy éles alkalmazásokhoz használják őket. 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önyvéhez leginkább megfelelő megoldás felméréséhez lásd a Hitelesítési útmutatót.
További információ: Azure DevOps REST API-referencia és a REST API-k használatának első lépései.
Hitelesítés
Hitelesítés az Azure DevOpsszal REST API-k vagy .NET-kódtárak használatakor az alábbi lépések végrehajtásával:
PAT létrehozása:
Kezdje ezekkel a mintákkal, és hozzon létre egy személyes hozzáférési jogkivonatot (PAT).Fontos
Javasoljuk a biztonságosabb Microsoft Entra-jogkivonatokat a magasabb kockázatú személyes hozzáférési jogkivonatokkal szemben. További információ a PAT-használat csökkentésére tett erőfeszítéseinkről. Tekintse át a hitelesítési útmutatónkat , és válassza ki az igényeinek megfelelő hitelesítési mechanizmust.
Alapszintű hitelesítés használata PAT használatával:
- Konvertálja a PAT-t Base64-kódolású sztringgé a formátumban
username:PAT
(a felhasználónév üres lehet). - Adja hozzá a kódolt karakterláncot a
Authorization
HTTP-fejléchez.
Példa alapszintű hitelesítés curl használatával:
curl -u :{yourPAT} https://dev.azure.com/{organization}/_apis/projects?api-version=7.2-preview.1
- Konvertálja a PAT-t Base64-kódolású sztringgé a formátumban
GET-kérelmek mintái
A következő C# és curl-kérelmek egy JSON-választ adnak vissza, amely tartalmazza egy adott szervezet összes projektjének listáját:
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;
}
}
-u username:PAT https://dev.azure.com/{organization}/_apis/projects?api-version=6.0
POST kérelemminta
A következő curl-kérelem létrehoz egy új munkaelemet a "Tevékenység" típusból egy adott projektben:
-u username:PAT -X POST -H "Content-Type: application/json" \
-d '{"fields": {"System.Title": "New Work Item"}}' \
https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/$Task?api-version=6.0
PUT kérés példa
Az alábbi curl-kérelem egy meglévő munkaelemet frissít, ha állapotát "Folyamatban" értékre módosítja:
-u username:PAT -X PATCH -H "Content-Type: application/json-patch+json" \
-d '[{"op": "add", "path": "/fields/System.State", "value": "In Progress"}]' \
https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{id}?api-version=6.0
DELETE kérelemminta
A következő curl-kérelem töröl egy meglévő munkaelemet egy adott projektből:
-u username:PAT -X DELETE \
https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{id}?api-version=6.0
.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élda a .NET-ügyfélkódtárakon keresztül lekéri a szervezet projektjeinek listáját:
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;
}
Gyakori kérdések
K: Hol szerezhetem be a kódminták forráskódját?
Válasz: Lásd a https://github.com/Microsoft/vsts-restapi-samplecode.