Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Większość przykładów w tym artykule używa osobistych tokenów dostępu (PAT). Sieci PAT są kompaktowym przykładem uwierzytelniania, ale nie zalecamy używania ich w aplikacjach produkcyjnych. Dostępnych jest wiele innych mechanizmów uwierzytelniania, w tym biblioteki uwierzytelniania firmy Microsoft, protokołu OAuth i tokenów sesji. Aby uzyskać więcej informacji potrzebnych do oceny, które rozwiązanie najlepiej nadaje się do Twojego scenariusza, zobacz wskazówki dotyczące uwierzytelniania.
Aby uzyskać więcej informacji, zobacz Dokumentacja interfejsu API REST usługi Azure DevOps i Wprowadzenie do interfejsów API REST.
Uwierzytelnianie
Uwierzytelnianie za pomocą usługi Azure DevOps podczas korzystania z interfejsów API REST lub bibliotek platformy .NET, wykonując następujące kroki:
Utwórz token PAT:
Zacznij od tych przykładów i utwórz osobisty token dostępu (PAT).Ważne
Zalecamy stosowanie bezpieczniejszych tokenów firmy Microsoft w przypadku tokenów dostępu osobistego o wyższym ryzyku. Dowiedz się więcej o naszych wysiłkach zmierzających do zmniejszenia użycia PAT. Zapoznaj się z naszymi wskazówkami dotyczącymi uwierzytelniania , aby wybrać odpowiedni mechanizm uwierzytelniania dla Twoich potrzeb.
Użyj uwierzytelniania podstawowego z osobistym tokenem dostępu (PAT):
- Przekonwertuj identyfikator pat na ciąg zakodowany w formacie Base64 w formacie
username:PAT
(nazwa użytkownika może być pusta). - Dodaj zakodowany ciąg do nagłówka
Authorization
HTTP.
Przykład użycia uwierzytelniania podstawowego z narzędziem curl:
curl -u :{yourPAT} https://dev.azure.com/{organization}/_apis/projects?api-version=7.2-preview.1
- Przekonwertuj identyfikator pat na ciąg zakodowany w formacie Base64 w formacie
Przykłady żądań GET
Następujące żądania języka C# i curl zwracają odpowiedź JSON zawierającą listę wszystkich projektów w określonej organizacji:
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
Przykład żądania POST
Następujące żądanie curl tworzy nowy element roboczy typu "Zadanie" w określonym projekcie:
-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
Przykład żądania PUT
Następujące żądanie curl aktualizuje istniejący element roboczy, zmieniając jego stan na "W toku":
-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
Przykład żądania DELETE
Następujące żądanie curl usuwa istniejący element roboczy z określonego projektu:
-u username:PAT -X DELETE \
https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{id}?api-version=6.0
Biblioteki klienckie .NET
W tym miejscu używamy dwóch bibliotek klienckich platformy .NET. Upewnij się, że w projekcie .NET odwołujesz się do następujących bibliotek klienckich platformy .NET.
- Microsoft.TeamFoundationServer.Client
- Microsoft.Visual Studio.Services.Client
Poniższy przykład umożliwia pobranie listy projektów dla organizacji za pośrednictwem bibliotek klienckich platformy .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;
}
Często zadawane pytania
.: Gdzie mogę uzyskać kod źródłowy dla przykładów kodu?
Zobacz https://github.com/Microsoft/vsts-restapi-samplecode.
.: Gdzie mogę znaleźć więcej informacji na temat biblioteki .NET?
Zobacz przegląd bibliotek klienckich.