Protocoles nuget.org

Pour interagir avec nuget.org, les clients doivent suivre certains protocoles. Étant donné que ces protocoles continuent d’évoluer, les clients doivent identifier la version de protocole qu’ils utilisent lors de l’appel d’API nuget.org spécifiques. Cela permet aux nuget.org d’introduire des modifications de manière non cassant pour les anciens clients.

Notes

Les API documentées sur cette page sont spécifiques à nuget.org et il n’est pas prévu que d’autres implémentations de serveur NuGet introduisent ces API.

Pour plus d’informations sur l’API NuGet implémentée dans l’ensemble de l’écosystème NuGet, consultez vue d’ensemble de l’API.

Cette rubrique répertorie les différents protocoles au fur et à mesure de leur existence.

Protocole NuGet version 4.1.0

Le protocole 4.1.0 spécifie l’utilisation de clés d’étendue de vérification pour interagir avec des services autres que nuget.org, afin de valider un package par rapport à un compte nuget.org. Notez que le numéro de 4.1.0 version est une chaîne opaque, mais qu’il coïncide avec la première version du client NuGet officiel qui a pris en charge ce protocole.

La validation garantit que les clés API créées par l’utilisateur ne sont utilisées qu’avec nuget.org, et que les autres vérifications ou validation d’un service tiers sont gérées par le biais d’une utilisation unique de clés d’étendue de vérification. Ces clés d’étendue de vérification peuvent être utilisées pour vérifier que le package appartient à un utilisateur particulier (compte) sur nuget.org.

Configuration requise du client

Les clients doivent passer l’en-tête suivant lorsqu’ils effectuent des appels d’API pour envoyer des packages à nuget.org :

X-NuGet-Protocol-Version: 4.1.0

Notez que l’en-tête X-NuGet-Client-Version a une sémantique similaire, mais qu’il est réservé pour être utilisé uniquement par le client NuGet officiel. Les clients tiers doivent utiliser l’en-tête et la X-NuGet-Protocol-Version valeur.

Le protocole push lui-même est décrit dans la documentation de la PackagePublish ressource.

Si un client interagit avec des services externes et doit vérifier si un package appartient à un utilisateur particulier (compte), il doit utiliser le protocole suivant et utiliser les clés d’étendue de vérification et non les clés API de nuget.org.

API pour demander une clé d’étendue de vérification

Cette API est utilisée pour obtenir une clé d’étendue de vérification pour un auteur de nuget.org afin de valider un package qui lui appartient.

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

Paramètres de la demande

Nom Dans Type Obligatoire Notes
id URL string Oui Identificateur de package pour lequel la clé d’étendue de vérification est demandée
VERSION URL string non Version du package
X-NuGet-ApiKey En-tête string Oui Par exemple : X-NuGet-ApiKey: {USER_API_KEY}

response

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

API pour vérifier la clé d’étendue de vérification

Cette API est utilisée pour valider une clé d’étendue de vérification pour le package appartenant à l’auteur nuget.org.

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

Paramètres de la demande

Nom Dans Type Obligatoire Notes
id URL string Oui Identificateur de package pour lequel la clé d’étendue de vérification est demandée
VERSION URL string non Version du package
X-NuGet-ApiKey En-tête string Oui Par exemple : X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

Notes

Cette clé API vérifier l’étendue expire dans un jour ou lors de la première utilisation, selon la première éventualité.

response

Code d’état Signification
200 La clé API est valide
403 La clé API n’est pas valide ou n’est pas autorisée à envoyer (push) sur le package
404 Le package référencé par ID et VERSION (facultatif) n’existe pas