2016-01-23 26 views
8

Interesuje mnie pisanie biblioteki klienta wokół interfejsu API NuGet v3 w języku innym niż .NET. Gdzie mogę znaleźć dokumentację/zasoby na ten temat, które mogłyby mi powiedzieć np. z jakich adresów URL wysyłać żądania i jakie odpowiedzi zwróci?Gdzie mogę znaleźć dokumentację dla API NuGet v3?

Próbowałem wykonać szybkie wyszukiwanie w Google, ale pojawia się tylko this, która była ostatnio aktualizowana 3 lata temu. Czy istnieje spec?

+0

Szukanie łączy poza miejscem jest oczywiście nie na temat, ale kiedy znajdziesz informacji rozważyć aktualizację wiki tagu (http://stackoverflow.com/tags/nuget/info) –

+0

Jest bardzo prawdopodobne, że Twoją jedyną nadzieją jest kod C#, https://github.com/NuGet/NuGet.Client/tree/dev/src/NuGet.Core/NuGet.Protocol.Core.v3 –

+0

Uprzejma prośba o dokumentację https://github.com/NuGet/Home/issues/4062 –

Odpowiedz

9

Here to oficjalna dokumentacja interfejsu API NuGet V3. API składa się z wielu protokołów, w tym:

  1. Service Index - używany przez klienta, aby odkryć usługi Nuget
  2. Search Service - używane przez klientów do wyszukiwania pakietów Nuget
  3. Registration - JSON -LD struktura przechowująca metadane pakietów. Dotyczy to zawartości, zależności, opisów itp. Pakietów ...
  4. The "PackageBaseAddress" - Sklep zawierający rzeczywiste pakiety i ich pliki manifestu (nuspec).

Załóżmy, że chcesz pobrać pakiet "Newtonsoft JSON.":

  1. uzyskać wskaźnik serwisowy: `GET https://api.nuget.org/v3/index.json

odpowiedź zawiera adres PackageBaseAddress (aka, niepoprawnie jako płaski kontener, ponieważ jest hierarchiczny i nie płaski :)):

{ 
    "@id": "https://api.nuget.org/v3-flatcontainer/", 
    "@type": "PackageBaseAddress/3.0.0", 
    "comment": "Base URL of Azure storage where NuGet package registration info for DNX is stored, in the format https://api.nuget.org/v3-flatcontainer/{id-lower}/{version-lower}.{version-lower}.nupkg" 
}, 
  1. Użyj identyfikatora dostarczonego przez @id jako podstawowego pliku uri do wyświetlenia wersji żądanego pakietu: GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/index.json, należy pamiętać, że ten plik URI może ulec zmianie i nie jest częścią interfejsu API
  2. Użyj tego samego bazowego URI, aby pobrać pakiet: GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/6.0.4/newtonsoft.json.6.0.4.nupkg

można też spojrzeć na NuGet client. Kod źródłowy klienta to here; będziesz chciał zacząć od NuGet.CommandLine project i iść swoją drogą w dół stosu.

+0

Pokrewne zagadnienia: https://github.com/NuGet/Home/issues/1870 –

+0

Awesome, very informative. Dzięki za twoją odpowiedź! –

3

Ostatnio oficjalna dokumentacja V3 został opublikowany here