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. 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:

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.

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.