Envoyer (push) et supprimer

Il est possible d’envoyer, de supprimer (ou de retirer de la liste, en fonction de l’implémentation du serveur) et de répertorier de nouveau des packages à l’aide de l’API NuGet V3. Ces opérations sont basées sur la ressource PackagePublish trouvée dans l’index de service.

Contrôle de version

La valeur suivante @type est utilisée :

Valeur @type Notes
PackagePublish/2.0.0 La version initiale

URL de base

L’URL de base des API suivantes est la valeur de la propriété @id de la ressource dans l’index de service de la ressource PackagePublish/2.0.0 du package. Pour la documentation ci-dessous, l’URL de nuget.org est utilisée. Considérez https://www.nuget.org/api/v2/package comme un espace réservé pour la valeur @id trouvée dans l’index de service.

Notez que cette URL pointe vers le même emplacement que le point de terminaison d’envoi V2 hérité, car le protocole est le même.

Méthodes HTTP

Les méthode HTTP PUT, POST and DELETE sont prises en charge par cette ressource. Pour quelles méthodes sont prises en charge sur chaque point de terminaison, voir ci-dessous.

Envoyer un package

Remarque

nuget.org a des exigences supplémentaires pour interagir avec le point de terminaison d’envoi.

nuget.org prend en charge l’envoi de nouveaux packages à l’aide de l’API suivante. Si le package avec l’ID et la version fournis existe déjà, nuget.org rejettera l’envoi. D’autres sources de package peuvent prendre en charge le remplacement d’un package existant.

PUT https://www.nuget.org/api/v2/package

Paramètres de la demande

Nom Dans Type Requise Notes
X-NuGet-ApiKey En-tête string Oui Par exemple, X-NuGet-ApiKey: {USER_API_KEY}

La clé API est une chaîne opaque extraite de la source du package par l’utilisateur et configurée dans le client. Aucun format de chaîne particulier n’est obligatoire, mais la longueur de la clé API ne doit pas dépasser une taille raisonnable pour les valeurs d’en-tête HTTP.

Corps de la demande

Le corps de la demande doit être présent dans le formulaire suivant :

Données de formulaire en plusieurs parties

L’en-tête Content-Type de la demande est multipart/form-data et le premier article du corps de la demande est les octets bruts du fichier .nupkg en cours d’envoi. Les articles suivants dans le corps multipart sont ignorés. Le nom de fichier ou les autres en-têtes des articles multipart sont ignorés.

Response

Code de statut Signification
201, 202 Le package a été envoyé avec succès
400 Le package fourni n’est pas valide
409 Un package avec l’ID et la version fournis existe déjà

Les implémentations de serveur varient selon le code de statut de réussite retourné lorsqu’un package est correctement envoyé.

Supprimer un package

nuget.org interprète la demande de suppression de package en tant que « non répertorié ». Cela signifie que le package est toujours disponible pour les consommateurs existants du package, mais que le package n’apparaît plus dans les résultats de recherche ou dans l’interface web. Pour plus d’informations sur cette pratique, consultez la stratégie Packages supprimés. D’autres implémentations de serveur sont libres d’interpréter ce signal comme une suppression définitive, une suppression réversible ou une liste non répertoriée. Par exemple, NuGet.Server (une implémentation de serveur prenant uniquement en charge l’ancienne API V2) prend en charge la gestion de cette requête en tant que retrait de la liste ou suppression définitive en fonction d’une option de configuration.

DELETE https://www.nuget.org/api/v2/package/{ID}/{VERSION}

Paramètres de la demande

Nom Dans Type Requise Notes
id URL string Oui L’ID du package à supprimer.
VERSION URL string Oui La version du package à supprimer
X-NuGet-ApiKey En-tête string Oui Par exemple, X-NuGet-ApiKey: {USER_API_KEY}

Response

Code de statut Signification
204 Le package a été supprimé
404 Aucun package avec le ID et VERSION fourni existe

Répertorier de nouveau un package

Si un package n’est pas répertorié, il est possible de rendre ce package une fois de plus visible dans les résultats de la recherche à l’aide du point de terminaison « répertorier de nouveau ». Ce point de terminaison a la même forme que le point de terminaison supprimer (retirer de la liste), mais utilise la méthode HTTP POST au lieu de la méthode DELETE.

Si le package est déjà répertorié, la requête réussit toujours.

POST https://www.nuget.org/api/v2/package/{ID}/{VERSION}

Paramètres de la demande

Nom Dans Type Requise Notes
id URL string Oui ID du package à répertorier de nouveau
VERSION URL string Oui La nouvelle version du package à répertorier de nouveau
X-NuGet-ApiKey En-tête string Oui Par exemple, X-NuGet-ApiKey: {USER_API_KEY}

Response

Code de statut Signification
200 Le package est maintenant répertorié
404 Aucun package avec le ID et VERSION fourni existe