Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
É possível pesquisar pacotes disponíveis numa fonte de pacote usando a API V3. O recurso utilizado para pesquisa é o SearchQueryService recurso encontrado no índice de serviço.
Versioning
São utilizados os seguintes @type valores:
| @type valor | Notas |
|---|---|
| SearchQueryService | O lançamento inicial |
| SearchQueryService/3.0.0-beta | Pseudónimo de SearchQueryService |
| SearchQueryService/3.0.0-rc | Pseudónimo de SearchQueryService |
| SearchQueryService/3.5.0 | Inclui suporte para packageType parâmetro de consulta |
SearchQueryService/3.5.0
Esta versão introduz suporte para o packageType parâmetro de consulta e a packageTypes propriedade de resposta, permitindo filtragem por tipos de pacotes definidos pelo autor. É totalmente retrocompatível com consultas para SearchQueryService.
URL base
A URL base para a API seguinte é o valor da @id propriedade associada a um dos valores de recurso @type mencionados. No documento seguinte, será utilizada a URL {@id} base do marcador de substituição. O URL base pode mudar com base na implementação ou nas alterações de infraestrutura dentro do código-fonte do pacote, pelo que deve ser recolhido dinamicamente a partir do índice de serviço pelo software cliente.
Métodos HTTP
Todas as URLs encontradas no recurso de registo suportam os métodos GET HTTP e HEAD.
Pesquisa por pacotes
A API de pesquisa permite a um cliente consultar uma página de pacotes que correspondam a uma consulta de pesquisa especificada. A interpretação da consulta de pesquisa (por exemplo, a tokenização dos termos de pesquisa) é determinada pela implementação do servidor, mas a expectativa geral é que a consulta de pesquisa seja usada para corresponder IDs de pacotes, títulos, descrições e etiquetas. Outros campos de metadados de pacotes também podem ser considerados.
Um pacote não listado nunca deve aparecer nos resultados de pesquisa.
GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
Parâmetros de solicitação
| Name | Em | Tipo | Required | Notas |
|---|---|---|---|---|
| q | URL | cadeia (de caracteres) | no | Os termos de pesquisa usados para filtrar pacotes |
| ignorar | URL | número inteiro | no | O número de resultados a ignorar, para paginação |
| tomar | URL | número inteiro | no | O número de resultados a devolver, para paginação |
| pré-lançamento | URL | boolean | no |
true ou false determinar se incluir pacotes pré-lançamento |
| semVerLevel | URL | cadeia (de caracteres) | no | Uma cadeia de versões SemVer 1.0.0 |
| Tipo de pacote | URL | cadeia (de caracteres) | no | O tipo de pacote a usar para filtrar pacotes (adicionado em SearchQueryService/3.5.0) |
A consulta q de pesquisa é analisada de forma definida pela implementação do servidor. nuget.org suporta filtragem básica em vários campos. Se não q for fornecida, todas as encomendas devem ser devolvidas, dentro dos limites impostos por skip and take. Isto permite o separador "Navegar" na experiência NuGet Visual Studio.
O skip parâmetro é 0 por defeito.
O take parâmetro deve ser um inteiro maior que zero. A implementação do servidor pode impor um valor máximo.
Note
nuget.org limita o skip parâmetro a 3.000 e o take parâmetro a 1.000.
Se prerelease não for fornecido, os pacotes pré-lançamento são excluídos.
O semVerLevel parâmetro de consulta é usado para optar por pacotes SemVer 2.0.0.
Se este parâmetro de consulta for excluído, apenas serão devolvidos pacotes com versões compatíveis com SemVer 1.0.0 (com as ressalvas padrão de versionamento do NuGet , como cadeias de versões com 4 partes inteiras).
Se semVerLevel=2.0.0 for fornecido, serão devolvidos os pacotes compatíveis com SemVer 1.0.0 e SemVer 2.0.0. Consulte o suporte ao SemVer 2.0.0 para nuget.org para mais informações.
O packageType parâmetro é usado para filtrar ainda mais os resultados da pesquisa apenas para 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 válido conforme definido pelo documento Tipo de Pacote, será devolto um resultado vazio.
Se o tipo de encomenda fornecido estiver vazio, não será aplicado nenhum filtro. Ou seja, não passar nenhum valor ao parâmetro packageType comportar-se-á como se o parâmetro não tivesse sido passado.
Resposta
A resposta é um documento JSON contendo até take resultados de pesquisa. Os resultados da pesquisa estão agrupados por ID de pacote.
O objeto JSON raiz tem as seguintes propriedades:
| Name | Tipo | Required | Notas |
|---|---|---|---|
| totaisHits | número inteiro | yes | O número total de jogos, desconsiderando skip e take |
| dados | Matriz de objetos | yes | Os resultados da pesquisa correspondiam ao pedido |
Resultado da pesquisa
Cada item no data array é um objeto JSON composto por um grupo de versões de pacotes que partilham o mesmo ID de pacote.
O objeto tem as seguintes propriedades:
| Name | Tipo | Required | Notas |
|---|---|---|---|
| id | cadeia (de caracteres) | yes | O ID da encomenda correspondente |
| versão | cadeia (de caracteres) | yes | A string completa da versão SemVer 2.0.0 do pacote (pode conter metadados de build) |
| description | cadeia (de caracteres) | no | |
| depreciação | objecto | no | A descontinuação associada à versão mais recente do pacote |
| versions | Matriz de objetos | yes | Todas as versões do pacote correspondem ao prerelease parâmetro |
| authors | string ou matriz de strings | no | |
| iconUrl | cadeia (de caracteres) | no | |
| licenseUrl | cadeia (de caracteres) | no | |
| proprietários | string ou matriz de strings | no | Uma string representa o nome de utilizador de um único proprietário |
| projectUrl | cadeia (de caracteres) | no | |
| registo | cadeia (de caracteres) | no | A URL absoluta para o índice de registo associado |
| resumo | cadeia (de caracteres) | no | |
| tags | string ou matriz de strings | no | |
| title | cadeia (de caracteres) | no | |
| totalDownloads | número inteiro | no | Este valor pode ser inferido pela soma dos downloads no versions array |
| verificada | boolean | no | Um booleano JSON que indica se o pacote está verificado |
| vulnerabilidades | Matriz de objetos | no | As vulnerabilidades de segurança conhecidas associadas à versão mais recente do pacote |
| Tipos de pacotes | Matriz de objetos | yes | Os tipos de pacote definidos pelo autor do pacote (adicionados em SearchQueryService/3.5.0) |
No nuget.org, um pacote verificado é aquele que tem um ID de pacote correspondente a um prefixo de ID reservado e pertence a um dos proprietários do prefixo reservado. Para mais informações, consulte a documentação sobre a reserva do prefixo de identificação.
Os metadados contidos no objeto de resultados de pesquisa são retirados da versão mais recente do pacote. Cada item no versions array é um objeto JSON com as seguintes propriedades:
| Name | Tipo | Required | Notas |
|---|---|---|---|
| @id | cadeia (de caracteres) | yes | O URL absoluto para a folha de registo associada |
| versão | cadeia (de caracteres) | yes | A string completa da versão SemVer 2.0.0 do pacote (pode conter metadados de build) |
| Downloads | número inteiro | yes | O número de downloads para esta versão específica do pacote |
Descontinuação do pacote
O deprecation objeto tem as seguintes propriedades:
| Name | Tipo | Required | Notas |
|---|---|---|---|
| Razões | matriz de strings | yes | As razões pelas quais o pacote foi obsoleto |
| mensagem | cadeia (de caracteres) | no | Detalhes adicionais sobre a desvalorização |
| Pacote alternativo | objecto | no | O pacote alternativo a usar em vez disso |
O reasons array contém pelo menos um dos valores documentados na descontinuação de pacotes.
O alternatePackage objeto tem as seguintes propriedades:
| Name | Tipo | Required | Notas |
|---|---|---|---|
| id | cadeia (de caracteres) | yes | O ID do pacote alternativo |
| intervalo | cadeia (de caracteres) | no | O intervalo de versões permitido, ou * se alguma versão for permitida |
Vulnerabilidades
Cada item no vulnerabilities array é um objeto JSON com as seguintes propriedades:
| Name | Tipo | Required | Notas |
|---|---|---|---|
| advisoryUrl | cadeia (de caracteres) | yes | A URL do aviso de segurança do pacote |
| severity | número inteiro | yes | A severidade do aviso: 0 = Baixa, 1 = Moderada, 2 = Alta e 3 = Crítica |
O array está vazio quando a versão mais recente do pacote não apresenta vulnerabilidades conhecidas.
O packageTypes array consistirá sempre em pelo menos um (1) item. O tipo de pacote para um determinado ID de pacote é considerado os tipos de pacote definidos pela versão mais recente do pacote em relação aos outros parâmetros de pesquisa. Cada item no packageTypes array é um objeto JSON com as seguintes propriedades:
| Name | Tipo | Required | Notas |
|---|---|---|---|
| Nome | cadeia (de caracteres) | yes | O nome do tipo de embalagem. |
Pedido de amostra
GET https://search-sample.nuget.org/query?q=NuGet.Versioning&prerelease=false&semVerLevel=2.0.0
Certifique-se de obter o URL base (https://search-sample.nuget.org/query neste exemplo) do índice do serviço, como mencionado na secção do URL base .
Resposta de exemplo
{
"totalHits": 2,
"data": [
{
"registration": "https://api.nuget.org/v3/registration-sample/nuget.versioning/index.json",
"id": "NuGet.Versioning",
"version": "4.4.0",
"description": "NuGet's implementation of Semantic Versioning.",
"summary": "",
"title": "NuGet.Versioning",
"licenseUrl": "https://raw.githubusercontent.com/NuGet/NuGet.Client/dev/LICENSE.txt",
"tags": [ "semver", "semantic", "versioning" ],
"authors": [ "NuGet" ],
"totalDownloads": 141896,
"verified": true,
"vulnerabilities": [],
"packageTypes": [
{
"name": "Dependency"
}
],
"versions": [
{
"version": "3.3.0",
"downloads": 50343,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/3.3.0.json"
},
{
"version": "3.4.3",
"downloads": 27932,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/3.4.3.json"
},
{
"version": "4.0.0",
"downloads": 63004,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/4.0.0.json"
},
{
"version": "4.4.0",
"downloads": 617,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/4.4.0.json"
}
]
},
{
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/index.json",
"@type": "Package",
"registration": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/index.json",
"id": "Nerdbank.GitVersioning",
"version": "2.0.41",
"description": "Stamps your assemblies with semver 2.0 compliant git commit specific version information and provides NuGet versioning information as well.",
"summary": "Stamps your assemblies with semver 2.0 compliant git commit specific version information and provides NuGet versioning information as well.",
"title": "Nerdbank.GitVersioning",
"licenseUrl": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/ed547462f7/LICENSE.txt",
"projectUrl": "http://github.com/aarnott/Nerdbank.GitVersioning",
"tags": [ "git", "commit", "versioning", "version", "assemblyinfo" ],
"authors": [ "Andrew Arnott" ],
"totalDownloads": 11906,
"verified": false,
"vulnerabilities": [],
"versions": [
{
"version": "1.6.35",
"downloads": 10229,
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/1.6.35.json"
},
{
"version": "2.0.41",
"downloads": 1677,
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/2.0.41.json"
}
]
}
]
}