nuget.org-Protokolle

Für die Interaktion mit nuget.org müssen Clients bestimmte Protokolle befolgen. Da sich diese Protokolle ständig weiterentwickeln, müssen Clients die Protokollversion identifizieren, die sie beim Aufrufen bestimmter nuget.org-APIs verwenden. So kann nuget.org Änderungen einführen, ohne dass es für die alten Clients zu Unterbrechungen kommt.

Hinweis

Die auf dieser Seite dokumentierten APIs sind spezifisch für nuget.org. Es wird nicht erwartet, dass diese APIs in anderen NuGet-Serverimplementierungen eingeführt werden.

Informationen zur NuGet-API, die im gesamten NuGet-Ökosystem implementiert ist, finden Sie in der API-Übersicht.

In diesem Thema werden verschiedene Protokolle aufgelistet, sobald sie eingeführt werden.

NuGet-Protokollversion 4.1.0

Das 4.1.0-Protokoll gibt die Verwendung von Bereichsüberprüfungsschlüsseln für die Interaktion mit anderen Diensten als nuget.org an, um ein Paket anhand eines nuget.org-Kontos zu überprüfen. Beachten Sie, dass die Versionsnummer 4.1.0 eine nicht transparente Zeichenfolge ist, die zufällig mit der ersten Version des offiziellen NuGet-Clients übereinstimmt, der dieses Protokoll unterstützte.

Die Überprüfung stellt sicher, dass die vom Benutzer erstellten API-Schlüssel nur mit nuget.org verwendet werden und dass andere Verifizierungen oder Überprüfungen von einem Drittanbieterdienst über die einmalige Verwendung von Bereichsüberprüfungsschlüsseln durchgeführt werden. Anhand dieser Bereichsüberprüfungsschlüssel kann überprüft werden, ob das Paket zu einem bestimmten Benutzer (Konto) auf nuget.org gehört.

Clientanforderung

Clients müssen den folgenden Header übergeben, wenn sie API-Aufrufe zum Pushen von Paketen an nuget.org durchführen:

X-NuGet-Protocol-Version: 4.1.0

Beachten Sie, dass der Header X-NuGet-Client-Version über eine ähnliche Semantik verfügt, aber nur für die Verwendung durch den offiziellen NuGet-Client reserviert ist. Drittanbieterclients sollten den X-NuGet-Protocol-Version-Header und -Wert verwenden.

Das Pushprotokoll selbst wird in der Dokumentation für die PackagePublish Ressource beschrieben.

Wenn ein Client mit externen Diensten interagiert und überprüfen muss, ob ein Paket zu einem bestimmten Benutzer (Konto) gehört, sollte er das folgende Protokoll verwenden und die Bereichsüberprüfungsschlüssel und nicht die API-Schlüssel aus nuget.org einsetzen.

API zum Anfordern eines Bereichsüberprüfungsschlüssels

Diese API wird zum Abrufen eines Bereichsüberprüfungsschlüssels für einen nuget.org-Autor verwendet, der ein eigenes Paket überprüfen möchte.

POST api/v2/package/create-verification-key/{ID}/{VERSION}

Anforderungsparameter

Name Geben Sie in type Erforderlich Hinweise
Kennung URL Zeichenfolge ja Der Paketbezeichner, für den der Bereichsüberprüfungsschlüssel angefordert wird.
VERSION URL Zeichenfolge Nein Die Paketversion
X-NuGet-ApiKey Header Zeichenfolge ja Beispiel: X-NuGet-ApiKey: {USER_API_KEY}

Antwort

{
    "Key": "{Verify scope key from nuget.org}",
    "Expires": "{Date}"
}

API zum Überprüfen des Bereichsüberprüfungsschlüssels

Diese API wird verwendet, um einen Bereichsüberprüfungsschlüssel für das Paket zu überprüfen, das sich im Besitz des nuget.org-Autors befindet.

GET api/v2/verifykey/{ID}/{VERSION}

Anforderungsparameter

Name Geben Sie in type Erforderlich Hinweise
Kennung URL Zeichenfolge ja Der Paketbezeichner, für den der Bereichsüberprüfungsschlüssel angefordert wird
VERSION URL Zeichenfolge Nein Die Paketversion
X-NuGet-ApiKey Header Zeichenfolge ja Beispiel: X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

Hinweis

Dieser API-Schlüssel zur Bereichsüberprüfung läuft innerhalb eines Tages oder bei der ersten Verwendung ab, je nachdem, was zuerst eintritt.

Antwort

Statuscode Bedeutung
200 Der API-Schlüssel ist gültig.
403 Der API-Schlüssel ist ungültig oder nicht zum Pushen für das Paket autorisiert.
404 Das von ID und VERSION (optional) referenzierte Paket ist nicht vorhanden.