nuget.org-Protokollenuget.org protocols

Zum Interagieren mit nuget.org müssen Clients bestimmte Protokolle nutzen.To interact with nuget.org, clients need to follow certain protocols. Da diese Protokolle sich immer weiterentwickeln, müssen Clients die von ihnen genutzte Protokollversion angeben, wenn sie bestimmte nuget.org-APIs aufrufen.Because these protocols keep evolving, clients must identify the protocol version they use when calling specific nuget.org APIs. Dadurch kann nuget.org Änderungen einführen und mit alten Clients kompatibel bleiben.This allows nuget.org to introduce changes in a non-breaking way for the old clients.

Hinweis

Die hier dokumentierten APIs sind spezifisch für nuget.org, und es wird von anderen NuGet-Serverimplementierungen nicht erwartet, dass sie 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 zur NuGet-API, die im NuGet-Ökosystem weitgehend implementiert ist, finden Sie in der API-Übersicht.For information about the NuGet API implemented broadly across the NuGet ecosystem, see the API overview.

Dieses Thema listet verschiedene Protokolle auf, sobald diese eingeführt werden.This topic lists various protocols as and when they come to existence.

NuGet-Protokoll, Version 4.1.0NuGet protocol version 4.1.0

Die 4.1.0 Protokoll gibt an, die Nutzung der überprüfen-Scope-Schlüssel für die Interaktion mit anderen Diensten als "NuGet.org", um ein Paket mit einem nuget.org-Konto zu überprüfen.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 Version ist eine nicht transparente Zeichenfolge wurden jedoch zufällig mit der ersten Version des offiziellen NuGet-Clients übereinstimmen, die dieses Protokoll unterstützt.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.

Überprüfung wird sichergestellt, dass der Benutzer erstellte API-Schlüssel werden nur mit nuget.org verwendet, und diese anderen der Überprüfung oder der Überprüfung von einem Drittanbieter-Dienst über eine einmalige Verwendung überprüfen-Scope-Schlüssel erfolgt.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 überprüfen-Scope-Schlüssel können verwendet werden, um sicherzustellen, dass das Paket an einen bestimmten Benutzer (Konto), die 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 die folgenden Header übergeben werden soll, wenn sie API-Aufrufen Push Pakete auf nuget.org: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 Header X-NuGet-Client-Version eine ähnliche Semantik benutzt, aber für die ausschließliche Nutzung durch den offiziellen NuGet-Client vorgesehen ist.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 Header und Wert X-NuGet-Protocol-Version nutzen.Third party clients should use the X-NuGet-Protocol-Version header and value.

Das Push-Protokoll selbst wird in der Dokumentation für die PackagePublish-Ressource beschrieben.The push protocol itself is described in the documentation for the PackagePublish resource.

Wenn ein Client mit externen Diensten und Anforderungen interagiert und überprüfen muss, ob ein Paket einem bestimmten Benutzer (Konto) gehört, sollte er das folgende Protokoll und die "Verify Scope"-Schlüssel, 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, um einen "Verify Scope"-Schlüssel anzufordernAPI to request a verify-scope key

Diese API wird genutzt, um einen "Verify Scope"-Schlüssel anzufordern, damit ein nuget.org-Autor ein Paket validieren kann, das ihm/ihr gehört.This 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 HinweiseNotes
IDID URLURL Stringstring jayes Die Paket-ID, für die der Schlüssel angefordert wirdThe package identidier for which the verify scope key is requested
VERSIONVERSION URLURL Stringstring neinno Die PaketversionThe package version
X-NuGet-ApiKeyX-NuGet-ApiKey HeaderHeader Stringstring jayes beispielsweise 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, um den "Verify Scope"-Schlüssel zu überprüfenAPI to verify the verify scope key

Diese API wird verwendet, um einen "Verify Scope"-Schlüssel für ein Paket zu überprüfen.This 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 HinweiseNotes
IdID URLURL Zeichenfolgestring jayes Die Paket-ID für die der Schlüssel des überprüfen Bereich 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 Beispiel: X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}For example, X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

Hinweis

Dieser "Verify Scope"-Schlüssel läuft nach einem Tag oder der ersten Nutzung ab.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 für dieses Paket nicht autorisiertThe API key is invalid or not authorized to push against the package
404404 Das Paket, das mit ID und (optional) VERSION angegeben wurde, existiert nichtThe package referred to by ID and VERSION (optional) does not exist