Paketinhalt
Es ist möglich, eine URL zu generieren, um den Inhalt eines beliebigen Pakets (die nupkg-Datei) mithilfe der V3-API abzurufen. Die Zum Abrufen von Paketinhalten verwendete Ressource ist die PackageBaseAddress
Ressource im Dienstindex. Diese Ressource ermöglicht auch die Ermittlung aller Versionen eines Pakets, aufgelistet oder nicht aufgelistet.
Diese Ressource wird häufig als "Paketbasisadresse" oder als "flacher Container" bezeichnet.
Versionsverwaltung
Der folgende @type
Wert wird verwendet:
Wert vom Typ @type | Hinweise |
---|---|
PackageBaseAddress/3.0.0 | Erstrelease |
Basis-URL
Die Basis-URL für die folgenden APIs ist der Wert der @id
-Eigenschaft, die einem der oben genannten @type
-Ressourcenwerte zugeordnet ist. Im folgenden Dokument wird die Platzhalter-Basis-URL {@id}
verwendet. Die Basis-URL kann sich basierend auf Implementierungs- oder Infrastrukturänderungen innerhalb der Paketquelle ändern, sodass sie dynamisch vom Dienstindex der Clientsoftware abgerufen werden muss.
HTTP-Methoden
Alle URLs in der Paketinhaltsressource unterstützen die HTTP-Methoden GET
und HEAD
.
Aufzählen von Paketversionen
Wenn der Client eine Paket-ID kennt und ermitteln möchte, welche Paketversionen die Paketquelle verfügbar hat, kann der Client eine vorhersagbare URL erstellen, um alle Paketversionen aufzählen zu können. Diese Liste soll eine "Verzeichnisauflistung" für die Paketinhalts-API sein, die unten Erwähnung.
Hinweis
Diese Liste enthält sowohl aufgelistete als auch nicht aufgelistete Paketversionen.
GET {@id}/{LOWER_ID}/index.json
Anforderungsparameter
Name | Geben Sie in | type | Erforderlich | Hinweise |
---|---|---|---|---|
LOWER_ID | URL | Zeichenfolge | ja | Die Paket-ID, kleingeschrieben |
Der LOWER_ID
Wert ist die gewünschte Paket-ID in Kleinbuchstaben mithilfe der von . NET-Methode System.String.ToLowerInvariant()
.
Antwort
Wenn die Paketquelle keine Versionen der bereitgestellten Paket-ID enthält, wird ein 404-Statuscode zurückgegeben.
Wenn die Paketquelle über eine oder mehrere Versionen verfügt, wird ein 200-Statuscode zurückgegeben. Der Antworttext ist ein JSON-Objekt mit der folgenden Eigenschaft:
Name | Type | Erforderlich | Hinweise |
---|---|---|---|
versions | Zeichenfolgen-Arrays | ja | Die verfügbaren Versionen |
Die Zeichenfolgen im versions
Array sind alle kleingeschriebenen, normalisierten NuGet-Versionszeichenfolgen. Die Versionszeichenfolgen enthalten keine SemVer 2.0.0-Buildmetadaten.
Der Zweck besteht darin, dass die in diesem Array gefundenen Versionszeichenfolgen für die LOWER_VERSION
Token in den folgenden Endpunkten verwendet werden können.
Beispielanfrage
GET https://api.nuget.org/v3-flatcontainer/owin/index.json
Stellen Sie sicher, dass Sie die Basis-URL (https://api.nuget.org/v3-flatcontainer/
in diesem Beispiel) aus dem Dienstindex abrufen, wie im Basis-URL-Abschnitt Erwähnung.
Beispiel für eine Antwort
{
"versions": [
"0.5.0",
"0.7.0",
"0.11.0",
"0.12.0",
"0.14.0",
"1.0.0"
]
}
Herunterladen von Paketinhalten (.nupkg)
Wenn der Client eine Paket-ID und -Version kennt und den Paketinhalt herunterladen möchte, müssen sie nur die folgende URL erstellen:
GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.{LOWER_VERSION}.nupkg
Anforderungsparameter
Name | Geben Sie in | type | Erforderlich | Hinweise |
---|---|---|---|---|
LOWER_ID | URL | Zeichenfolge | ja | Die Paket-ID, Kleinbuchstabe |
LOWER_VERSION | URL | Zeichenfolge | ja | Die Paketversion, normalisiert und kleingeschrieben |
Beide und LOWER_ID
LOWER_VERSION
werden mit den von . NET's System.String.ToLowerInvariant()
Methode.
Dies LOWER_VERSION
ist die gewünschte Paketversion, die mithilfe der Versionsnormalisierungsregeln von NuGet normalisiert wird. Dies bedeutet, dass Buildmetadaten, die von der SemVer 2.0.0-Spezifikation zulässig sind, in diesem Fall ausgeschlossen werden müssen.
Antworttext
Wenn das Paket in der Paketquelle vorhanden ist, wird ein 200-Statuscode zurückgegeben. Der Antworttext ist der Paketinhalt selbst.
Wenn das Paket nicht in der Paketquelle vorhanden ist, wird ein 404-Statuscode zurückgegeben.
Beispielanfrage
GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/9.0.1/newtonsoft.json.9.0.1.nupkg
Stellen Sie sicher, dass Sie die Basis-URL (https://api.nuget.org/v3-flatcontainer/
in diesem Beispiel) aus dem Dienstindex abrufen, wie im Basis-URL-Abschnitt Erwähnung.
Beispiel für eine Antwort
Der binäre Datenstrom, der die .nupkg für Newtonsoft.Json 9.0.1 ist.
Paketmanifest herunterladen (.nuspec)
Wenn der Client eine Paket-ID und -Version kennt und das Paketmanifest herunterladen möchte, müssen sie nur die folgende URL erstellen:
GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.nuspec
Anforderungsparameter
Name | Geben Sie in | type | Erforderlich | Hinweise |
---|---|---|---|---|
LOWER_ID | URL | Zeichenfolge | ja | Die Paket-ID, Kleinbuchstabe |
LOWER_VERSION | URL | Zeichenfolge | ja | Die Paketversion, normalisiert und kleingeschrieben |
Sowohl LOWER_ID
als auch LOWER_VERSION
werden unter Verwendung der von der .NET-Methode System.String.ToLowerInvariant()
implementierten Regeln kleingeschrieben.
Dies LOWER_VERSION
ist die gewünschte Paketversion, die mithilfe der Versionsnormalisierungsregeln von NuGet normalisiert wird. Dies bedeutet, dass Buildmetadaten, die von der SemVer 2.0.0-Spezifikation zulässig sind, in diesem Fall ausgeschlossen werden müssen.
Antworttext
Wenn das Paket in der Paketquelle vorhanden ist, wird ein 200-Statuscode zurückgegeben. Der Antworttext ist das Paketmanifest, bei dem es sich um die nuspec handelt, die in der entsprechenden nupkg enthalten ist. Der .nuspec ist ein XML-Dokument.
Wenn das Paket nicht in der Paketquelle vorhanden ist, wird ein 404-Statuscode zurückgegeben.
Beispielanfrage
GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/6.0.4/newtonsoft.json.nuspec
Stellen Sie sicher, dass Sie die Basis-URL (https://api.nuget.org/v3-flatcontainer/
in diesem Beispiel) aus dem Dienstindex abrufen, wie im Basis-URL-Abschnitt Erwähnung.
Beispielantwort
<?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>