Efetuar push e excluir

É possível transmitir, excluir (ou retirar da lista, dependendo da implementação do servidor) e relistar pacotes usando a API do NuGet V3. Essas operações são baseadas no recurso PackagePublish encontrado no índice de serviço.

Controle de versão

O seguinte valor @type é usado:

@type valor Observações
PackagePublish/2.0.0 O lançamento inicial

URL base

A URL base para as APIs a seguir é o valor da propriedade @id do recurso PackagePublish/2.0.0 no índice de serviço da origem do pacote. Para a documentação abaixo, a URL do nuget.org é usada. Considere https://www.nuget.org/api/v2/package como um espaço reservado para o valor @id encontrado no índice de serviço.

Observe que essa URL aponta para o mesmo local que o ponto de extremidade push V2 herdado, já que o protocolo é o mesmo.

Métodos HTTP

Os métodos HTTP PUT, POST e DELETE são suportados por este recurso. Para saber quais métodos são suportados em cada ponto de extremidade, consulte abaixo.

Efetuar push de um pacote

Observação

nuget.org tem requisitos adicionais para interagir com o ponto de extremidade push.

nuget.org oferece suporte ao envio de novos pacotes por push usando a seguinte API. Se o pacote com a ID e a versão fornecidas já existirem, nuget.org rejeitará o push. Outras fontes de pacote podem oferecer suporte à substituição de um pacote existente.

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

Parâmetros da solicitação

Nome Em Tipo Obrigatória Observações
X-NuGet-ApiKey Cabeçalho string sim Por exemplo, X-NuGet-ApiKey: {USER_API_KEY}

A chave de API é uma cadeia de caracteres opaca obtida da origem do pacote pelo usuário e configurada para o cliente. Nenhum formato de cadeia de caracteres específico é obrigatório, mas o comprimento da chave de API não deve exceder um tamanho razoável para valores de cabeçalho HTTP.

Corpo da solicitação

O corpo da solicitação deve ter o seguinte formato:

Dados do formulário multiparte

O cabeçalho da solicitação Content-Type é multipart/form-data e o primeiro item no corpo da solicitação são os bytes brutos do .nupkg que está sendo enviado por push. Os itens subsequentes no corpo de várias partes são ignorados. O nome de arquivo ou quaisquer outros cabeçalhos dos itens de várias partes são ignorados.

Resposta

Código do Status Significado
201, 202 O pacote foi transmitido com êxito
400 O pacote fornecido é inválido
409 Já existe um pacote com a ID e a versão fornecidas

As implementações de servidor variam de acordo com o código de status de êxito retornado quando um pacote é enviado por push com êxito.

Excluir um pacote

nuget.org interpreta a solicitação de exclusão do pacote como “unlist”. Isso significa que o pacote ainda está disponível para os consumidores existentes do pacote, mas o pacote não aparece mais nos resultados da busca ou na interface da Web. Para obter mais informações sobre essa prática, consulte a política de Pacotes excluídos. Outras implementações de servidor são livres para interpretar esse sinal como uma exclusão irreversível, exclusão temporária ou remoção da lista. Por exemplo, o NuGet.Server (uma implementação de servidor que oferece suporte apenas à API V2 mais antiga) oferece suporte ao tratamento dessa solicitação como uma remoção de lista ou de exclusão irreversível com base em uma opção de configuração.

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

Parâmetros da solicitação

Nome Em Tipo Obrigatória Observações
ID URL string sim A ID do pacote a ser excluída
VERSION URL string sim A versão do pacote a ser excluído
X-NuGet-ApiKey Cabeçalho string sim Por exemplo, X-NuGet-ApiKey: {USER_API_KEY}

Resposta

Código do Status Significado
204 O pacote foi excluído
404 Não existe nenhum pacote com ID e VERSION fornecidos

Reistar um pacote

Se um pacote for retirado da lista, é possível torná-lo novamente visível nos resultados da busca usando o ponto de extremidade “relist”. Esse ponto de extremidade tem a mesma forma que o ponto de extremidade delete (unlist), mas usa o método HTTP POST em vez do DELETE.

Se o pacote já estiver listado, a solicitação ainda terá êxito.

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

Parâmetros da solicitação

Nome Em Tipo Obrigatória Observações
ID URL string sim A ID do pacote a ser relistada
VERSION URL string sim A nova versão do pacote a ser relistado
X-NuGet-ApiKey Cabeçalho string sim Por exemplo, X-NuGet-ApiKey: {USER_API_KEY}

Resposta

Código do Status Significado
200 O pacote agora está listado
404 Não existe nenhum pacote com ID e VERSION fornecidos