2016-01-23 9 views
8

Sono interessato a scrivere una libreria client attorno all'API NuGet v3 in un linguaggio non- .NET. Dove posso trovare documentazione/risorse su di esso che mi direbbe ad es. quali URL fare richieste e quali risposte verrebbero restituite?Dove posso trovare la documentazione per l'API NuGet v3?

Ho provato a fare una rapida ricerca su Google, ma l'unica cosa che si presenta è this, che è stato aggiornato l'ultima volta 3 anni fa. Esiste una specifica?

+0

Ricerca di collegamenti off-site è ovviamente off-topic, ma quando si trova informazioni in considerazione l'aggiornamento wiki del tag (http://stackoverflow.com/tags/nuget/info) –

+0

È molto probabile che la tua unica speranza sia il codice C#, https://github.com/NuGet/NuGet.Client/tree/dev/src/NuGet.Core/NuGet.Protocol.Core.v3 –

+0

Richiesta gentile di documentazione https://github.com/NuGet/Home/issues/4062 –

risposta

9

Here è la documentazione ufficiale di NuGet V3 API. L'API è composto da più protocolli, tra cui:

  1. Il Service Index - utilizzato dal client per scoprire i servizi Nuget
  2. Il Search Service - utilizzato dai clienti per cercare i pacchetti Nuget
  3. Il Registration - A JSON Struttura basata su -LD che memorizza i metadati dei pacchetti. Questo include il contenuto dei pacchetti, le dipendenze, le descrizioni, ecc ...
  4. Il "PackageBaseAddress" - Il negozio che contiene i pacchetti effettivi e i loro file manifest (nuspec).

Per esempio, diciamo che si voleva scaricare il pacchetto "Newtonsoft JSON.":

  1. ottenere l'indice di servizio: `GET https://api.nuget.org/v3/index.json

La risposta contiene l'indirizzo del PackageBaseAddress (aka, erroneamente come contenitore piatto, poiché è gerarchico e non piatto :)):

{ 
    "@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. Utilizzare l'uri fornito da @id come base uri per elencare le versioni del pacchetto desiderato: GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/index.json, notare che questo uri è soggetto a modifiche e non fa parte dell'API
  2. Utilizzare lo stesso URI di base per scaricare un pacchetto: GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/6.0.4/newtonsoft.json.6.0.4.nupkg

Si consiglia inoltre di guardare il NuGet client. Il codice sorgente del client è here; ti consigliamo di iniziare dallo NuGet.CommandLine project e camminare fino in fondo allo stack.

+0

Problemi correlati: https://github.com/NuGet/Home/issues/1870 –

+0

Impressionante, molto informativo. Grazie per la risposta! –

3

documentazione Recentemente ufficiale V3 è stato pubblicato here