Contenuto di un pacchetto
È possibile generare un URL per recuperare il contenuto di un pacchetto arbitrario (il file con estensione nupkg) usando l'API V3. La risorsa usata per recuperare il contenuto del pacchetto è la PackageBaseAddress
risorsa presente nell'indice del servizio. Questa risorsa consente anche l'individuazione di tutte le versioni di un pacchetto, elencate o non elencate.
Questa risorsa viene comunemente definita "indirizzo di base del pacchetto" o come "contenitore flat".
Controllo delle versioni
Viene usato il valore seguente @type
:
Valore @type | Note |
---|---|
PackageBaseAddress/3.0.0 | Versione iniziale |
URL di base
L'URL di base per le API seguenti è il valore della @id
proprietà associata al valore della risorsa @type
precedente. Nel documento seguente verrà usato l'URL {@id}
di base segnaposto. L'URL di base può cambiare in base alle modifiche dell'implementazione o dell'infrastruttura all'interno dell'origine del pacchetto, pertanto deve essere recuperato dinamicamente dall'indice del servizio dal software client.
Metodi HTTP
Tutti gli URL trovati nella risorsa contenuto del pacchetto supportano i metodi GET
HTTP e HEAD
.
Enumerare le versioni dei pacchetti
Se il client conosce un ID pacchetto e vuole individuare le versioni del pacchetto disponibili per l'origine del pacchetto, il client può costruire un URL stimabile per enumerare tutte le versioni del pacchetto. Questo elenco è destinato a essere un "elenco di directory" per l'API del contenuto del pacchetto menzionata di seguito.
Nota
Questo elenco contiene sia le versioni del pacchetto elencate che quelle non elencate.
GET {@id}/{LOWER_ID}/index.json
Parametri della richiesta
Nome | Tra | Type | Obbligatorio | Note |
---|---|---|---|---|
LOWER_ID | URL | string | yes | ID pacchetto, in minuscolo |
Il LOWER_ID
valore è l'ID pacchetto desiderato in minuscolo usando le regole implementate da . Metodo di System.String.ToLowerInvariant()
NET.
Response
Se l'origine del pacchetto non ha versioni dell'ID pacchetto specificato, viene restituito un codice di stato 404.
Se l'origine del pacchetto ha una o più versioni, viene restituito un codice di stato 200. Il corpo della risposta è un oggetto JSON con la proprietà seguente:
Nome | Digita | Obbligatorio | Note |
---|---|---|---|
versions | matrice di stringhe | yes | Le versioni disponibili |
Le stringhe nella versions
matrice sono tutte stringhe di versione NuGet normalizzate e minuscole. Le stringhe di versione non contengono metadati di compilazione SemVer 2.0.0.
Lo scopo è che le stringhe di versione disponibili in questa matrice possono essere usate verbatim per i LOWER_VERSION
token presenti negli endpoint seguenti.
Esempio di richiesta
GET https://api.nuget.org/v3-flatcontainer/owin/index.json
Assicurarsi di recuperare l'URL di base (https://api.nuget.org/v3-flatcontainer/
in questo esempio) dall'indice del servizio, come indicato nella sezione URL di base.
Risposta di esempio
{
"versions": [
"0.5.0",
"0.7.0",
"0.11.0",
"0.12.0",
"0.14.0",
"1.0.0"
]
}
Scaricare il contenuto del pacchetto (.nupkg)
Se il client conosce un ID pacchetto e una versione e vuole scaricare il contenuto del pacchetto, è sufficiente costruire l'URL seguente:
GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.{LOWER_VERSION}.nupkg
Parametri della richiesta
Nome | Tra | Type | Obbligatorio | Note |
---|---|---|---|---|
LOWER_ID | URL | string | yes | ID pacchetto, minuscolo |
LOWER_VERSION | URL | string | yes | Versione del pacchetto, normalizzata e minuscola |
Sia LOWER_ID
che LOWER_VERSION
sono in minuscolo usando le regole implementate da . NET MetodoSystem.String.ToLowerInvariant()
.
LOWER_VERSION
è la versione del pacchetto desiderata normalizzata usando le regole di normalizzazione della versione di NuGet. Ciò significa che i metadati di compilazione consentiti dalla specifica SemVer 2.0.0 devono essere esclusi in questo caso.
Corpo della risposta
Se il pacchetto esiste nell'origine del pacchetto, viene restituito un codice di stato 200. Il corpo della risposta sarà il contenuto del pacchetto stesso.
Se il pacchetto non esiste nell'origine del pacchetto, viene restituito un codice di stato 404.
Esempio di richiesta
GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/9.0.1/newtonsoft.json.9.0.1.nupkg
Assicurarsi di recuperare l'URL di base (https://api.nuget.org/v3-flatcontainer/
in questo esempio) dall'indice del servizio, come indicato nella sezione URL di base.
Risposta di esempio
Flusso binario con estensione nupkg per Newtonsoft.Json 9.0.1.
Scaricare il manifesto del pacchetto (.nuspec)
Se il client conosce un ID pacchetto e una versione e vuole scaricare il manifesto del pacchetto, è sufficiente costruire l'URL seguente:
GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.nuspec
Parametri della richiesta
Nome | Tra | Type | Obbligatorio | Note |
---|---|---|---|---|
LOWER_ID | URL | string | yes | ID pacchetto, minuscolo |
LOWER_VERSION | URL | string | yes | Versione del pacchetto, normalizzata e minuscola |
Sia LOWER_ID
che LOWER_VERSION
sono in minuscolo usando le regole implementate da . Metodo di System.String.ToLowerInvariant()
NET.
LOWER_VERSION
è la versione del pacchetto desiderata normalizzata usando le regole di normalizzazione della versione di NuGet. Ciò significa che i metadati di compilazione consentiti dalla specifica SemVer 2.0.0 devono essere esclusi in questo caso.
Corpo della risposta
Se il pacchetto esiste nell'origine del pacchetto, viene restituito un codice di stato 200. Il corpo della risposta sarà il manifesto del pacchetto, ovvero il file con estensione nuspec contenuto nel file nupkg corrispondente. .nuspec è un documento XML.
Se il pacchetto non esiste nell'origine del pacchetto, viene restituito un codice di stato 404.
Esempio di richiesta
GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/6.0.4/newtonsoft.json.nuspec
Assicurarsi di recuperare l'URL di base (https://api.nuget.org/v3-flatcontainer/
in questo esempio) dall'indice del servizio, come indicato nella sezione URL di base.
Risposta di esempio
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Newtonsoft.Json</id>
<version>6.0.4</version>
<title>Json.NET</title>
<authors>James Newton-King</authors>
<owners>James Newton-King</owners>
<licenseUrl>https://raw.github.com/JamesNK/Newtonsoft.Json/master/LICENSE.md</licenseUrl>
<projectUrl>http://james.newtonking.com/json</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Json.NET is a popular high-performance JSON framework for .NET</description>
<language>en-US</language>
<tags>json</tags>
</metadata>
</package>