nuget.org-Protokollenuget.org protocols

Um mit nuget.org interagieren zu können, müssen Clients bestimmte Protokolle einhalten.To interact with nuget.org, clients need to follow certain protocols. Da diese Protokolle weiterentwickelt werden, müssen Clients die Protokollversion identifizieren, die Sie beim Aufrufen spezifischer nuget.org-APIs verwenden.Because these protocols keep evolving, clients must identify the protocol version they use when calling specific nuget.org APIs. Dies ermöglicht es nuget.org, Änderungen für die alten Clients in einer nicht unterbrechend orientierten Weise einzuführen.This allows nuget.org to introduce changes in a non-breaking way for the old clients.

Hinweis

Die auf dieser Seite dokumentierten APIs sind spezifisch für nuget.org, und es wird nicht erwartet, dass andere nuget-Server Implementierungen diese APIs einführen.The APIs documented on this page are specific to nuget.org and there is no expectation for other NuGet server implementations to introduce these APIs.

Weitere Informationen über die nuget-API, die im gesamten nuget-Ökosystem implementiert ist, finden Sie in der API-Übersicht.For information about the NuGet API implemented broadly across the NuGet ecosystem, see the API overview.

In diesem Thema werden verschiedene Protokolle als und wann Sie vorhanden sind aufgeführt.This topic lists various protocols as and when they come to existence.

Nuget-Protokollversion 4.1.0NuGet protocol version 4.1.0

Das 4.1.0-Protokoll gibt die Verwendung von Verify-Scope-Schlüsseln für die Interaktion mit anderen Diensten als nuget.org an, um ein Paket mit einem nuget.org-Konto zu validieren.The 4.1.0 protocol specifies usage of verify-scope keys to interact with services other than nuget.org, to validate a package against a nuget.org account. Beachten Sie, dass die 4.1.0 Versionsnummer eine nicht transparente Zeichenfolge ist, aber mit der ersten Version des offiziellen nuget-Clients übereinstimmt, der dieses Protokoll unterstützt hat.Note that the 4.1.0 version number is an opaque string but happens to coincide with the first version of the official NuGet client that supported this protocol.

Bei der Validierung wird sichergestellt, dass die vom Benutzer erstellten API-Schlüssel nur mit nuget.org verwendet werden, und dass eine andere Überprüfung oder Validierung von einem Drittanbieter Dienst über die einmalige Verwendung von Verify-Scope-Schlüsseln verarbeitet wird.Validation ensures that the user-created API keys are used only with nuget.org, and that other verification or validation from a third-party service is handled through a one-time use verify-scope keys. Diese Schlüssel zum Überprüfen des Bereichs können verwendet werden, um zu überprüfen, ob das Paket zu einem bestimmten Benutzer (Konto) auf nuget.org gehört.These verify-scope keys can be used to validate that the package belongs to a particular user (account) on nuget.org.

Client AnforderungClient requirement

Clients müssen den folgenden Header übergeben, wenn Sie API-Aufrufe zum Übertragen von Paketen an nuget.org durchführen:Clients are required to pass the following header when they make API calls to push packages to nuget.org:

X-NuGet-Protocol-Version: 4.1.0

Beachten Sie, dass der X-NuGet-Client-Version Header eine ähnliche Semantik hat, aber nur für den offiziellen nuget-Client verwendet werden kann.Note that the X-NuGet-Client-Version header has similar semantics but is reserved to only be used by the official NuGet client. Clients von Drittanbietern sollten den X-NuGet-Protocol-Version -Header und den-Wert verwenden.Third party clients should use the X-NuGet-Protocol-Version header and value.

Das pushprotokoll selbst wird in der Dokumentation für die PackagePublish Ressourcebeschrieben.The push protocol itself is described in the documentation for the PackagePublish resource.

Wenn ein Client mit externen Diensten interagiert und überprüft werden muss, ob ein Paket zu einem bestimmten Benutzer (Konto) gehört, sollte er das folgende Protokoll verwenden und die Schlüssel für den Verifizierungs Bereich und nicht die API-Schlüssel von nuget.org verwenden.If a client interacts with external services and needs to validate whether a package belongs to a particular user (account), it should use the following protocol and use the verify-scope keys and not the API keys from nuget.org.

API zum Anfordern eines Verifizierungs Bereichs SchlüsselsAPI to request a verify-scope key

Diese API wird verwendet, um einen Schlüssel zum Überprüfen des Bereichs zu erhalten, damit ein nuget.org-Autor ein Paket überprüfen kann, das sich im Besitz von ihm befindetThis API is used to get a verify-scope key for a nuget.org author to validate a package owned by him/her.

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

AnforderungsparameterRequest parameters

NameName InIn TypType ErforderlichRequired NotizenNotes
idID URLURL Zeichenfolgestring jayes Der paketidentierer, für den der Gültigkeits Bereichs Schlüssel angefordert wird.The package identidier for which the verify scope key is requested
VERSIONVERSION URLURL Zeichenfolgestring neinno Die PaketversionThe package version
X-nuget-APIKeyX-NuGet-ApiKey HeaderHeader Zeichenfolgestring jayes Zum Beispiel, X-NuGet-ApiKey: {USER_API_KEY}For example, X-NuGet-ApiKey: {USER_API_KEY}

AntwortResponse

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

API zum Überprüfen des Gültigkeits Bereichs SchlüsselsAPI to verify the verify scope key

Diese API wird verwendet, um einen Schlüssel zum Überprüfen des Bereichs für das Paket zu überprüfen, das im Besitz von nuget.org Author istThis API is used to validate a verify-scope key for package owned by the nuget.org author.

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

AnforderungsparameterRequest parameters

NameName InIn TypType ErforderlichRequired NotizenNotes
idID URLURL Zeichenfolgestring jayes Der Paket Bezeichner, für den der Schlüssel zum Überprüfen des Bereichs angefordert wirdThe package identifier for which the verify scope key is requested
VERSIONVERSION URLURL Zeichenfolgestring neinno Die PaketversionThe package version
X-nuget-APIKeyX-NuGet-ApiKey HeaderHeader Zeichenfolgestring jayes Zum Beispiel, X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}For example, X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

Hinweis

Dieser Gültigkeitsbereich-API-Schlüssel läuft in einem Tag oder bei der ersten Verwendung ab, je nachdem, welcher Fall zuerst eintritt.This verify scope API key expires in a day's time or on first use, whichever occurs first.

AntwortResponse

StatuscodeStatus Code BedeutungMeaning
200200 Der API-Schlüssel ist gültig.The API key is valid
403403 Der API-Schlüssel ist ungültig oder nicht zum Pushen des Pakets autorisiert.The API key is invalid or not authorized to push against the package
404404 Das Paket, auf das ID und VERSION (optional) verwiesen wird, ist nicht vorhanden.The package referred to by ID and VERSION (optional) does not exist