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_IDLOWER_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>