Condividi tramite


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>