Partilhar via


Preenchimento automático

É possível criar uma experiência de preenchimento automático de versão e ID de pacote usando a API V3. O recurso usado para fazer consultas de preenchimento automático é o recurso SearchAutocompleteService encontrado no índice de serviço.

Controle de versão

Os seguintes valores de @type são usados:

@type valor Observações
SearchAutocompleteService O lançamento inicial
SearchAutocompleteService/3.0.0-beta Alias de SearchAutocompleteService
SearchAutocompleteService/3.0.0-rc Alias de SearchAutocompleteService
SearchAutocompleteService/3.5.0 Inclui suporte para parâmetro de consulta packageType

SearchAutocompleteService/3.5.0

Esta versão introduz suporte para o parâmetro de consulta packageType, permitindo a filtragem por tipos de pacote definidos pelo autor. É totalmente compatível com versões anteriores de consultas ao SearchAutocompleteService.

URL base

A URL base para as APIs a seguir é o valor da propriedade @id associada a um dos valores de recurso @type mencionados anteriormente. No documento a seguir, a URL base {@id} do espaço reservado será usada. A URL base pode ser alterada com base na implementação ou nas alterações de infraestrutura dentro da origem do pacote, portanto, ela deve ser buscada dinamicamente no índice de serviço pelo software cliente.

Métodos HTTP

Todos os URLs encontrados no recurso de registro são compatíveis com os métodos HTTP GET e HEAD.

Pesquisar IDs de pacotes

A primeira API de preenchimento automático oferece suporte à pesquisa de parte de uma cadeia de caracteres de ID de pacote. Isso é ótimo quando você deseja fornecer um recurso de digitação antecipada de pacote em uma interface de usuário integrada a uma fonte de pacotes do NuGet.

Um pacote com apenas versões não listadas não aparecerá nos resultados.

GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}

Parâmetros da solicitação

Nome Em Tipo Obrigatória Observações
q URL string não A cadeia de caracteres a ser comparada com IDs de pacotes
skip URL Número inteiro não O número de resultados a serem ignorados, para paginação
take URL Número inteiro não O número de resultados a serem retornados, para paginação
pré-lançamento URL boolean não true ou false determina se os pacotes de pré-lançamento devem ser incluídos
semVerLevel URL string não Uma cadeia de caracteres da versão 1.0.0 do SemVer
packageType URL string não O tipo de pacote a ser usado para filtrar pacotes (adicionado em SearchAutocompleteService/3.5.0)

A consulta de preenchimento automático q é analisada de uma maneira definida pela implementação do servidor. o nuget.org oferece suporte à consulta do prefixo dos tokens de ID do pacote, que são partes da ID produzidas dividindo o original por maiúsculas e minúsculas e caracteres de símbolo.

O parâmetro skip assume 0 como padrão.

O parâmetro take deve ser um inteiro maior que zero. A implementação do servidor pode impor um valor máximo.

Se prerelease não for fornecido, os pacotes de pré-lançamento serão excluídos.

O parâmetro de consulta semVerLevel é usado para aceitar pacotes do SemVer 2.0.0. Se esse parâmetro de consulta for excluído, somente IDs de pacote com versões compatíveis com o SemVer 1.0.0 serão retornadas (com as advertências de controle de versão padrão do NuGet, como cadeias de caracteres de versão com 4 partes inteiras). Se semVerLevel=2.0.0 for fornecido, os pacotes compatíveis com SemVer 1.0.0 e SemVer 2.0.0 serão retornados. Consulte o suporte do SemVer 2.0.0 para nuget.org para obter mais informações.

O parâmetro packageType é usado para filtrar ainda mais os resultados do preenchimento automático para somente pacotes que tenham pelo menos um tipo de pacote correspondente ao nome do tipo de pacote. Se o tipo de pacote fornecido não for um tipo de pacote válido, conforme definido pelo Documento tipo de pacote, um resultado vazio será retornado. Se o tipo de pacote fornecido estiver vazio, nenhum filtro será aplicado. Em outras palavras, não passar um valor para o parâmetro packageType será como se o parâmetro não tivesse sido passado.

Resposta

A resposta é um documento JSON contendo até take resultados de preenchimento automático.

O objeto JSON raiz tem as seguintes propriedades:

Nome Digitar Obrigatória Observações
totalHits Número inteiro sim O número total de correspondências, desconsiderando skip e take
data matriz de cadeias de caracteres sim As IDs de pacote correspondidas pela solicitação

Solicitação de exemplo

GET https://search-sample.nuget.org/autocomplete?q=storage&prerelease=true

Efetue fetch do URL base (https://search-sample.nuget.org/autocomplete neste exemplo) do índice de serviço, conforme mencionado na seção URL base.

Resposta de exemplo

{
  "totalHits": 571,
  "data": [
    "WindowsAzure.Storage",
    "Storage.Net",
    "CK.Storage",
    "NCL.Storage",
    "DK.Storage",
    "Nine.Storage.Test",
    "Touch.Storage.Aws",
    "StorageAPIClient",
    "StorageAccess",
    "Storage.Net.Microsoft.Azure.Storage",
    "UnofficialAzure.StorageClient",
    "StorageAccess12",
    "AWSSDK.StorageGateway",
    "StorageExtensions",
    "Cloud.Storage",
    "lighthouse.storage",
    "ZU.Storage.Redis",
    "Magicodes.Storage",
    "Masticore.Storage",
    "hq.storage"
  ]
}

Enumerar versões do pacote

Depois que uma ID de pacote é descoberto usando a API anterior, um cliente pode usar a API de preenchimento automático para enumerar versões de pacote para um ID de pacote fornecido.

Uma versão do pacote que não está listada não aparecerá nos resultados.

GET {@id}?id={ID}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}

Parâmetros da solicitação

Nome Em Tipo Obrigatória Observações
ID URL string sim A ID do pacote para buscar versões
pré-lançamento URL boolean não true ou false determina se os pacotes de pré-lançamento devem ser incluídos
semVerLevel URL string não Uma cadeia de caracteres da versão 2.0.0 do SemVer

Se prerelease não for fornecido, os pacotes de pré-lançamento serão excluídos.

O parâmetro de pesquisa semVerLevel é usado para aceitar pacotes do SemVer 2.0.0. Se esse parâmetro de consulta for excluído, somente as versões do SemVer 1.0.0 serão retornadas. Se semVerLevel=2.0.0 for fornecido, as versões SemVer 1.0.0 e SemVer 2.0.0 serão retornadas. Consulte o suporte do SemVer 2.0.0 para nuget.org para obter mais informações.

Resposta

A resposta é um documento JSON que contém todas as versões de pacote da ID do pacote fornecida, filtrando pelos parâmetros de consulta fornecidos.

O objeto JSON raiz tem a seguinte propriedade:

Nome Digitar Obrigatória Observações
data matriz de cadeias de caracteres sim As versões do pacote correspondidas pela solicitação

As versões do pacote na matriz data podem conter metadados de compilação do SemVer 2.0.0 (por exemplo, 1.0.0+metadata) se semVerLevel=2.0.0 for fornecido na cadeia de caracteres de consulta.

Solicitação de exemplo

GET https://api-v2v3search-0.nuget.org/autocomplete?id=nuget.protocol&prerelease=true

Resposta de exemplo

{
  "data": [
    "4.3.0-preview3-4168",
    "4.3.0-preview4",
    "4.3.0-rtm-4324",
    "4.3.0",
    "4.4.0-preview3-4475",
    "4.4.0"
  ]
}