Freigeben über


nuget.org Protokolle

Um mit nuget.org zu interagieren, müssen Clients bestimmte Protokolle befolgen. Da sich diese Protokolle weiterentwickeln, müssen Clients die Protokollversion identifizieren, die sie beim Aufrufen bestimmter nuget.org-APIs verwenden. Auf diese Weise kann nuget.org Änderungen für die bestehenden Clients auf eine nicht beeinträchtigende Weise einführen.

Hinweis

Die auf dieser Seite dokumentierten APIs sind spezifisch für nuget.org und es gibt keine Erwartung für andere NuGet-Serverimplementierungen, diese APIs einzuführen.

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

In diesem Thema werden verschiedene Protokolle aufgelistet, sobald sie entstehen.

NuGet-Protokoll, Version 4.1.0

Das 4.1.0-Protokoll gibt die Verwendung von Prüfbereichsschlüsseln für die Interaktion mit anderen Diensten als nuget.org an, um ein Paket für ein nuget.org Konto zu überprüfen. Beachten Sie, dass die 4.1.0 Versionsnummer eine undurchsichtige Zeichenfolge ist, aber mit der ersten Version des offiziellen NuGet-Clients übereinstimmt, der dieses Protokoll unterstützt hat.

Die Validierung stellt sicher, dass die vom Benutzer erstellten API-Schlüssel nur mit nuget.org verwendet werden, und dass andere Überprüfungen oder Verifizierungen durch einen Drittanbieterdienst mithilfe von einmaligen Verifizierungsbereichs-Schlüsseln durchgeführt werden. Mithilfe dieser Ü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 an Pushpakete an nuget.org senden:

X-NuGet-Protocol-Version: 4.1.0

Beachten Sie, dass der X-NuGet-Client-Version Header über ähnliche Semantik verfügt, aber nur für die Verwendung durch den offiziellen NuGet-Client reserviert ist. Drittanbieter-Clients sollten den Header und den Wert X-NuGet-Protocol-Version 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 Prüfbereichsschlüssel und nicht die API-Schlüssel aus nuget.org verwenden.

API zum Anfordern eines Überprüfungsbereichsschlüssels

Diese API wird verwendet, um einen Überprüfungsbereichsschlüssel für einen nuget.org Autor abzurufen, um ein Paket zu überprüfen, das ihm gehört.

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

Anforderungsparameter

Name In Typ Erforderlich Hinweise
ID URL Schnur ja Der Paketidentifier, für das der Überprüfungsbereichsschlüssel angefordert wird
VERSION URL Schnur nein Die Paketversion
X-NuGet-ApiKey Header Schnur ja Beispiel: X-NuGet-ApiKey: {USER_API_KEY}

Antwort

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

API zum Verifizieren des Überprüfungsbereichsschlüssels

Diese API wird verwendet, um einen Verify-Scope-Schlüssel für das vom nuget.org-Autor gehaltene Paket zu validieren.

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

Anforderungsparameter

Name In Typ Erforderlich Hinweise
ID URL Schnur ja Der Paketbezeichner, für den der Überprüfungsbereichsschlüssel angefordert wird
VERSION URL Schnur nein Die Paketversion
X-NuGet-ApiKey Header Schnur ja Beispiel: X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

Hinweis

Dieser API-Schlüssel zur Überprüfung des Bereichs läuft entweder nach einem Tag 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 autorisiert, um das Paket zu aktualisieren.
404 Das Paket, auf das ID verwiesen wird, oder VERSION (optional) sind nicht vorhanden.