Konzultant a lektor pro [ASP].NET Core & REST API

Vycucněte data z Visual Studia Online

Miroslav Holec

Miroslav Holec

22. srpna. 2015 , aktualizace 29. března. 2016

Výhodou služby Visual Studio Online je mocná sada aplikačních rozhraní, se kterými lze za běhu zjišťovat stav repozitářů, probíhající práce aj. Prakticky všechna data z Visual Studia pak lze snadno přenést do vlastní aplikace nebo si napsat vlastního klienta, kterým je možné VS spravovat.

Komunikace přes REST

Komunikace s API probíhá skrze rozhraní REST, tedy architekturu poskytující CRUD metody pro práci s daty s využitím HTTP protokolu. Pro většinu metod poskytuje VS Online všechny metody (GET, POST, PUT, PATCH a DELETE). Výchozí Content-Type je samozřejmě JSON.

Autorizace

Pro většinu zdrojů (API metod) se stačí ověřovat pomocí Basic Auth. Pro tuto funkci je nutné povolit alternativní přihlašování ve Visual Studio Online.

VS login

 

Nastavení credentials

Otestování

K otestování lze použít přímo ukázku z VS, kterou jsem mírně upravil.

var username = "username";
var password = "password";

using (HttpClient client = new HttpClient())
{
    client.DefaultRequestHeaders.Accept.Add(
        new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
        Convert.ToBase64String(
            System.Text.ASCIIEncoding.ASCII.GetBytes(
                string.Format("{0}:{1}", username, password))));

    using (HttpResponseMessage response = client.GetAsync(
                "https://{account}.visualstudio.com/DefaultCollection/_apis/build/builds").Result)
    {
        response.EnsureSuccessStatusCode();
        string responseBody = response.Content.ReadAsStringAsync().Result;
        Console.WriteLine(responseBody);
    }
}

Výsledkem dotazu je JSON string, který už je snadné deserializovat do příslušného objektu.

Klientské knihovny pro .NET

Přímo ve formě NuGet balíčků je možné stáhnout knihovny, které práci s API usnadňují. Pokud vývojář plánuje vývoj aplikace založené na častém používání VS Online API, pak jsou knihovny doporučenou cestou jak si usnadnit vývoj.

PM> Install-Package Microsoft.TeamFoundationServer.ExtendedClient
PM> Install-Package Microsoft.TeamFoundationServer.Client
PM> Install-Package Microsoft.VisualStudio.Services.Client
PM> Install-Package Microsoft.VisualStudio.Services.InteractiveClient

Každá knihovna umožňuje správu jiné části VS. Celkové API lze rozdělit do řady skupin, z nichž asi nejzajímavější jsou následující:

Využití

Napadá mě celá řada možností, jak VS Online API využit. Dokážu si představit, že řada firem se zaměřením na vývoj software si postaví (nebo už má) vykazovací portál, kterému umožní prolinkování s work itemy. Tím mohou manažeři získat přehled o vykázané práci zaměstance v souvislosti s úkolem a díky práci s Gitem (nebo TFVS) se podívat i na commity, které s takovým úkolem souvisí.

Jiné využití, které sám plánuji aplikovat je čerpání informací o nasazených změnách. Služba, kterou nyní vyvíjím tak může mít přehlednou stránku, kde se uživatel dozví o všech nasazených změnách (commity do master branch). Toho samého lze dosáhnout i s čerpáním dat z dokončených work itemů.


Zeptejte se