Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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 sans rupture pour les anciens clients.
Note
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 comme et quand ils arrivent à exister.
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 4.1.0 numéro de 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 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.
Exigences 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 valeur X-NuGet-Protocol-Version.
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é de vérification de périmètre
Cette API permet d’obtenir une clé d’étendue de vérification pour un auteur nuget.org pour valider un package appartenant à lui/elle.
POST api/v2/package/create-verification-key/{ID}/{VERSION}
Paramètres de la demande
| Nom | In | Type | Obligatoire | Remarques |
|---|---|---|---|---|
| ID | URL | ficelle | oui | identifiant du paquet pour lequel la clé d’étendue de vérification est demandée |
| VERSION | URL | ficelle | Non | Version du package |
| X-NuGet-ApiKey | Header | ficelle | oui | Par exemple, X-NuGet-ApiKey: {USER_API_KEY} |
Réponse
{
"Key": "{Verify scope key from nuget.org}",
"Expires": "{Date}"
}
API pour vérifier la clé de portée de vérification
Cette API est utilisée pour valider une clé de portée de vérification pour le paquet appartenant à l’auteur sur nuget.org.
GET api/v2/verifykey/{ID}/{VERSION}
Paramètres de la demande
| Nom | In | Type | Obligatoire | Remarques |
|---|---|---|---|---|
| ID | URL | ficelle | oui | Identificateur de package pour lequel la clé d’étendue de vérification est demandée |
| VERSION | URL | ficelle | Non | Version du paquet |
| X-NuGet-ApiKey | Header | ficelle | oui | Par exemple, X-NuGet-ApiKey: {VERIFY_SCOPE_KEY} |
Note
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.
Réponse
| Code de statut | Meaning |
|---|---|
| 200 | La clé API est valide |
| 4:03 | 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 |