Partager via


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 du protocole qu’ils utilisent lors de l’appel d’API nuget.org spécifiques. Cela permet nuget.org d’introduire des changements d’une manière non cassant pour les anciens clients.

Remarque

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 la vue d’ensemble de l’API.

Cette rubrique répertorie 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 des clés d’étendue de vérification pour interagir avec les services autres que nuget.org, pour valider un package sur un compte nuget.org. Notez que le numéro de version 4.1.0 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 sont utilisées uniquement avec nuget.org, et que d’autres vérifications ou validations d’un service tiers sont gérées via 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 (compte) particulier sur nuget.org.

Configuration requise des clients

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 valeur X-NuGet-Protocol-Version.

Le protocole d’envoi 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 permet d’obtenir une clé d’étendue de vérification pour un auteur nuget.org pour valider un package qui lui appartient.

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

Paramètres de la demande

Nom Dans Type Requise Notes
id URL string Oui Identifiant du 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 permet de valider une clé d’étendue de vérification pour un package qui appartient à l’auteur nuget.org.

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

Paramètres de la demande

Nom Dans Type Requise Notes
id URL string Oui Identifiant du 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}

Remarque

Cette clé API de vérification de l’étendue expire dans le temps d’une journée ou lors de la première utilisation, selon ce qui se produit en premier.

Response

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