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 |