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 |