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 |