Push et supprimerPush and Delete

Il est possible d’envoyer, supprimer (ou retirer de la liste, selon l’implémentation de serveur) et les remettre dans la liste des packages à l’aide de l’API V3 de NuGet.It is possible to push, delete (or unlist, depending on the server implementation), and relist packages using the NuGet V3 API. Ces opérations sont basées issu de la PackagePublish ressource trouvée dans le index de service.These operations are based off of the PackagePublish resource found in the service index.

Gestion de versionVersioning

Ce qui suit @type valeur est utilisée :The following @type value is used:

Valeur@type@type value NotesNotes
PackagePublish/2.0.0PackagePublish/2.0.0 La version initialeThe initial release

URL de baseBase URL

L’URL de base pour les API suivantes est la valeur de la @id propriété de la PackagePublish/2.0.0 ressource dans la source de package index de service.The base URL for the following APIs is the value of the @id property of the PackagePublish/2.0.0 resource in the package source's service index. Pour obtenir la documentation ci-dessous, les URL de nuget.org est utilisé.For the documentation below, nuget.org's URL is used. Envisagez https://www.nuget.org/api/v2/package comme espace réservé pour le @id valeur trouvée dans l’index de service.Consider https://www.nuget.org/api/v2/package as a placeholder for the @id value found in the service index.

Notez que cette URL pointe vers le même emplacement que le point de terminaison push V2 héritée, étant donné que le protocole est le même.Note that this URL points to the same location as the legacy V2 push endpoint since the protocol is the same.

Méthodes HTTPHTTP methods

Le PUT, POST et DELETE méthodes HTTP sont pris en charge par cette ressource.The PUT, POST and DELETE HTTP methods are supported by this resource. Pour les méthodes sont prises en charge sur chaque point de terminaison, voir ci-dessous.For which methods are supported on each endpoint, see below.

Push d’un packagePush a package

Notes

NuGet.org a des exigences supplémentaires permettant d’interagir avec le point de terminaison push.nuget.org has additional requirements for interacting with the push endpoint.

NuGet.org prend en charge l’exécution de type push des nouveaux packages à l’aide de l’API suivante.nuget.org supports pushing new packages using the following API. Si le package avec l’ID et la version fournie existe déjà, nuget.org rejette la notification push.If the package with the provided ID and version already exists, nuget.org will reject the push. Autres sources de package peuvent prendre en charge le remplacement d’un package existant.Other package sources may support replacing an existing package.

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

Paramètres de la demandeRequest parameters

NomName Vers l'avantIn TypeType ObligatoireRequired NotesNotes
X-NuGet-ApiKeyX-NuGet-ApiKey HeaderHeader stringstring ouiyes Par exemple, X-NuGet-ApiKey: {USER_API_KEY}.For example, X-NuGet-ApiKey: {USER_API_KEY}

La clé API est une chaîne opaque obtenu à partir de la source du package par l’utilisateur et configuré dans le client.The API key is an opaque string gotten from the package source by the user and configured into the client. Aucun format de chaîne particulière n’est autorisé, mais la longueur de la clé API ne doit pas dépasser une taille raisonnable pour les valeurs d’en-tête HTTP.No particular string format is mandated but the length of the API key should not exceed a reasonable size for HTTP header values.

Corps de la requêteRequest body

Le corps de la demande doit être placée sous la forme suivante :The request body must come in the following form:

Données de formulaire en plusieurs partiesMultipart form data

L’en-tête de demande Content-Type est multipart/form-data et le premier élément dans le corps de la demande est les octets bruts du fichier .nupkg poussé.The request header Content-Type is multipart/form-data and the first item in the request body is the raw bytes of the .nupkg being pushed. Les éléments suivants dans le corps en plusieurs parties sont ignorés.Subsequent items in the multipart body are ignored. Le nom de fichier ou de tous les autres en-têtes des éléments en plusieurs parties sont ignorés.The file name or any other headers of the multipart items are ignored.

RéponseResponse

Code d’étatStatus Code SignificationMeaning
201, 202201, 202 Le package a été correctement envoyé.The package was successfully pushed
400400 Le package fourni n’est pas valideThe provided package is invalid
409409 Un package avec l’ID et la version fournie existe déjàA package with the provided ID and version already exists

Les implémentations serveur varient sur le code d’état de réussite retourné lorsqu’un package est envoyé avec succès.Server implementations vary on the success status code returned when a package is successfully pushed.

Supprimer un packageDelete a package

NuGet.org interprète la demande de suppression de package comme un « retirer de la liste ».nuget.org interprets the package delete request as an "unlist". Cela signifie que le package est toujours disponible pour les consommateurs existants du package, mais le package n’apparaît plus dans les résultats de recherche ou dans l’interface web.This means that the package is still available for existing consumers of the package but the package no longer appears in search results or in the web interface. Pour plus d’informations sur cette pratique, consultez le Packages supprimés stratégie.For more information about this practice, see the Deleted Packages policy. Autres implémentations de serveur sont libres d’interpréter ce signal comme une suppression de disque dur, de suppression réversible ou de retirer de la liste.Other server implementations are free to interpret this signal as a hard delete, soft delete, or unlist. Par exemple, NuGet.Server (une implémentation de serveur uniquement prise en charge de l’ancienne API V2) prend en charge la gestion de cette demande comme une suppression de la liste ou une suppression dure basée sur une option de configuration.For example, NuGet.Server (a server implementation only supporting the older V2 API) supports handling this request as either an unlist or a hard delete based on a configuration option.

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

Paramètres de la demandeRequest parameters

NomName Vers l'avantIn TypeType ObligatoireRequired NotesNotes
IdID URLURL stringstring ouiyes L’ID du package à supprimerThe ID of the package to delete
VERSIONVERSION URLURL stringstring ouiyes La version du package à supprimerThe version of the package to delete
X-NuGet-ApiKeyX-NuGet-ApiKey HeaderHeader stringstring ouiyes Par exemple, X-NuGet-ApiKey: {USER_API_KEY}.For example, X-NuGet-ApiKey: {USER_API_KEY}

RéponseResponse

Code d’étatStatus Code SignificationMeaning
204204 Le package a été suppriméThe package was deleted
404404 Aucun package avec l’argument ID et VERSION existeNo package with the provided ID and VERSION exists

Remettre dans la liste d’un packageRelist a package

Si un package n’est pas répertorié, il est possible de rendre ce package une fois encore visible dans les résultats de recherche à l’aide du point de terminaison « remise ».If a package is unlisted, it is possible to make that package once again visible in search results using the "relist" endpoint. Ce point de terminaison a la même forme que la supprimer (retirer de la liste) point de terminaison , mais utilise le POST méthode HTTP au lieu du DELETE (méthode).This endpoint has the same shape as the delete (unlist) endpoint but uses the POST HTTP method instead of the DELETE method.

Si le package est déjà répertorié, la demande réussit toujours.If the package is already listed, the request still succeeds.

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

Paramètres de la demandeRequest parameters

NomName Vers l'avantIn TypeType ObligatoireRequired NotesNotes
IdID URLURL stringstring ouiyes L’ID du package à remettre dans la listeThe ID of the package to relist
VERSIONVERSION URLURL stringstring ouiyes La version du package à remettre dans la listeThe version of the package to relist
X-NuGet-ApiKeyX-NuGet-ApiKey HeaderHeader stringstring ouiyes Par exemple, X-NuGet-ApiKey: {USER_API_KEY}.For example, X-NuGet-ApiKey: {USER_API_KEY}

RéponseResponse

Code d’étatStatus Code SignificationMeaning
200200 Le package est maintenant répertorié.The package is now listed
404404 Aucun package avec l’argument ID et VERSION existeNo package with the provided ID and VERSION exists