Partilhar 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 nuget.org específicas. Isso permite que nuget.org introduzam mudanças de forma ininterrupta 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 introduzam 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 eles passam a existir.

Protocolo NuGet versão 4.1.0

O protocolo 4.1.0 especifica o uso de chaves de escopo de verificação para interagir com serviços diferentes de nuget.org, para validar um pacote em relação a uma conta nuget.org. Observe que o número da 4.1.0 versão é uma cadeia de caracteres opaca, mas coincide com a primeira versão do cliente NuGet oficial que suportava 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 usuário específico (conta) no nuget.org.

Requisitos do cliente

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

X-NuGet-Protocol-Version: 4.1.0

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

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

Se um cliente interage com serviços externos e precisa validar se um pacote pertence a um determinado usuário (conta), ele deve usar o seguinte protocolo 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 verificação de escopo

Essa API é usada para obter uma chave de escopo de verificação para um autor de nuget.org validar um pacote de sua propriedade.

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

Parâmetros de solicitação

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

Resposta

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

API para verificar a chave de verificação do escopo

Essa API é usada para validar uma chave de verificação de escopo para um pacote de propriedade de um autor do nuget.org.

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

Parâmetros de solicitação

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

Observação

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

Resposta

Código de estado Meaning
200 A chave da API é válida
403 A chave da API é inválida ou não está autorizada a enviar para o pacote
404 O pacote referido por ID e VERSION (opcional) não existe