Compartilhar via


nuget.org protocolos

Para interagir com nuget.org, os clientes precisam seguir determinados protocolos. Como esses protocolos continuam evoluindo, os clientes devem identificar a versão do protocolo que usam ao chamar APIs de nuget.org específicas. Isso permite que nuget.org introduza alterações de maneira não interruptiva para os clientes antigos.

Observação

As APIs documentadas nesta página são específicas para nuget.org e não há expectativa de que outras implementações de servidor NuGet apresentem essas APIs.

Para obter informações sobre a API do NuGet implementada amplamente em todo o ecossistema do NuGet, consulte a visão geral da API.

Este tópico lista vários protocolos à medida que são desenvolvidos.

Protocolo NuGet versão 4.1.0

O protocolo 4.1.0 especifica o uso de "verify-scope keys" para interagir com serviços além de nuget.org, a fim de validar um pacote em uma conta do nuget.org. Observe que o número de 4.1.0 versão é uma cadeia de caracteres opaca, mas coincide com a primeira versão do cliente oficial do NuGet que deu suporte a esse protocolo.

A validação garante que as chaves de API criadas pelo usuário sejam usadas apenas com nuget.org e que outra verificação ou validação de um serviço de terceiros seja tratada por meio de chaves de escopo de verificação de uso único. Essas chaves de escopo de verificação podem ser usadas para validar se o pacote pertence a um determinado usuário (conta) no nuget.org.

Requisito de cliente

Os clientes são obrigados a passar o seguinte cabeçalho quando fazem chamadas de API para enviar pacotes com o comando push para nuget.org:

X-NuGet-Protocol-Version: 4.1.0

Observe que o X-NuGet-Client-Version cabeçalho tem semântica semelhante, mas é reservado para ser usado apenas pelo cliente oficial do NuGet. Clientes de terceiros devem usar o cabeçalho X-NuGet-Protocol-Version e o valor.

O protocolo push em si é descrito na documentação do PackagePublish recurso.

Se um cliente interagir com serviços externos e precisar validar se um pacote pertence a um determinado usuário (conta), ele deverá usar o protocolo a seguir e usar as chaves de escopo de verificação e não as chaves de API de nuget.org.

API para solicitar uma chave de escopo de verificação

Essa API é usada para obter uma chave de verificação de escopo para um autor do nuget.org validar um pacote que ele/ela possui.

POST api/v2/package/create-verification-key/{ID}/{VERSION}

Parâmetros de solicitação

Nome In Tipo Obrigatório Anotações
ID URL cadeia sim O identidier do pacote para o qual a chave de escopo de verificação é solicitada
VERSION URL cadeia no A versão do pacote
X-NuGet-ApiKey Header cadeia sim Por exemplo, X-NuGet-ApiKey: {USER_API_KEY}

Resposta

{
    "Key": "{Verify scope key from nuget.org}",
    "Expires": "{Date}"
}

API para verificar a chave de escopo de validação

Esta API é usada para validar uma chave de escopo de validação para o pacote pertencente ao autor do nuget.org.

GET api/v2/verifykey/{ID}/{VERSION}

Parâmetros de solicitação

Nome In Tipo Obrigatório Anotações
ID URL cadeia sim O identificador do pacote para o qual a chave de escopo de verificação é solicitada
VERSION URL cadeia no A versão do pacote
X-NuGet-ApiKey Header cadeia sim Por exemplo, X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

Observação

Essa chave de API de verificação de escopo expira em um dia ou no primeiro uso, o que ocorrer primeiro.

Resposta

Código de status Meaning
200 A chave de API é válida
403 A chave de API é inválida ou não está autorizada a realizar push para o pacote.
404 O pacote referenciado por ID e VERSION (opcional) não existe