protocoles NuGet.orgnuget.org protocols

Pour interagir avec nuget.org, les clients doivent suivre certains protocoles.To interact with nuget.org, clients need to follow certain protocols. Étant donné que ces protocoles conservent en constante évolution, les clients doivent identifier la version du protocole qu’ils utilisent lors de l’appel d’API de nuget.org spécifique.Because these protocols keep evolving, clients must identify the protocol version they use when calling specific nuget.org APIs. Cela permet de nuget.org d’introduire des modifications d’une manière sans rupture pour les anciens clients.This allows nuget.org to introduce changes in a non-breaking way for the old clients.

Notes

Les API documentées dans cette page sont spécifiques à nuget.org et n’est pas garantie pour d’autres implémentations de serveur NuGet d’introduire ces API.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.

Pour plus d’informations sur l’API NuGet implémenté largement au sein de l’écosystème NuGet, consultez le vue d’ensemble de l’API.For information about the NuGet API implemented broadly across the NuGet ecosystem, see the API overview.

Cette rubrique répertorie les différents protocoles en tant qu’et quand ils proviennent de l’existence.This topic lists various protocols as and when they come to existence.

Version du protocole NuGet 4.1.0NuGet protocol version 4.1.0

Le 4.1.0 protocole spécifie l’utilisation de clés de portée vérifier pour interagir avec les services autres que nuget.org, pour valider un package par rapport à un compte nuget.org.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. Notez que le 4.1.0 version nombre est une chaîne opaque mais qu’il coïncide avec la première version du client NuGet officiel pris en charge ce protocole.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.

La validation garantit que les clés API créés par l’utilisateur sont utilisées uniquement auprès de nuget.org, et cette vérification ou la validation à partir d’un service tiers est gérée via un usage des clés de vérifier de portée.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. Ces clés de vérifier de portée peuvent être utilisées pour valider que le package appartient à un utilisateur particulier (compte) sur nuget.org.These verify-scope keys can be used to validate that the package belongs to a particular user (account) on nuget.org.

Exigence du clientClient requirement

Les clients sont requises pour transmettre l’en-tête suivant lorsqu’ils effectuent des appels d’API vers push packages sur 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

Notez que le X-NuGet-Client-Version en-tête a une sémantique similaire, mais elle est réservé uniquement à être utilisé par le client NuGet officiel.Note that the X-NuGet-Client-Version header has similar semantics but is reserved to only be used by the official NuGet client. Les clients tiers doivent utiliser le X-NuGet-Protocol-Version en-tête et valeur.Third party clients should use the X-NuGet-Protocol-Version header and value.

Le push protocole lui-même est décrit dans la documentation pour le PackagePublish ressources.The push protocol itself is described in the documentation for the PackagePublish resource.

Si un client interagit avec les services externes et des besoins pour vérifier si un package appartient à un utilisateur particulier (compte), il doit utiliser le protocole suivant et utiliser les clés de l’étendue de vérifier et pas les clés de l’API à partir de nuget.org.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 pour demander une clé de l’étendue de la vérificationAPI to request a verify-scope key

Cette API est utilisée pour obtenir une clé de l’étendue de la vérification d’un auteur de nuget.org valider un package détenu par ce dernier.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}

Paramètres de la demandeRequest parameters

NameName Vers l'avantIn TypeType ObligatoireRequired NotesNotes
IdID URLURL chaînestring ouiyes L’identidier de package pour lequel la touche d’étendue de vérification est demandéeThe package identidier for which the verify scope key is requested
VERSIONVERSION URLURL chaînestring Nonno La version du packageThe package version
X-NuGet-ApiKeyX-NuGet-ApiKey HeaderHeader chaînestring ouiyes Par exemple, X-NuGet-ApiKey: {USER_API_KEY}.For example, X-NuGet-ApiKey: {USER_API_KEY}

RéponseResponse

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

API pour vérifier la touche d’étendue de vérificationAPI to verify the verify scope key

Cette API est utilisée pour valider une clé de vérifier de portée pour le package détenu par l’auteur de nuget.org.This API is used to validate a verify-scope key for package owned by the nuget.org author.

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

Paramètres de la demandeRequest parameters

NameName Vers l'avantIn TypeType ObligatoireRequired NotesNotes
IdID URLURL chaînestring ouiyes L’identificateur de package pour lequel la touche d’étendue de vérification est demandéeThe package identifier for which the verify scope key is requested
VERSIONVERSION URLURL chaînestring Nonno La version du packageThe package version
X-NuGet-ApiKeyX-NuGet-ApiKey HeaderHeader chaînestring ouiyes Par exemple, X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}.For example, X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

Notes

Cette touche étendue API de vérification expire dans une journée ou à la première utilisation, selon ce qui se produit en premier.This verify scope API key expires in a day's time or on first use, whichever occurs first.

RéponseResponse

Code d’étatStatus Code SignificationMeaning
200200 La clé API est valideThe API key is valid
403403 La clé API est non valide ou non autorisé à envoyer sur le packageThe API key is invalid or not authorized to push against the package
404404 Le package référencé par ID et VERSION (facultatif) n’existe pasThe package referred to by ID and VERSION (optional) does not exist