Compartilhar via


Service index

O índice de serviço é um documento JSON que é o ponto de entrada de uma fonte de pacote NuGet e permite que uma implementação do cliente descubra os recursos da fonte do pacote. O índice de serviço é um objeto JSON com duas propriedades necessárias: version (a versão do esquema do índice de serviço) e resources (os pontos de extremidade ou os recursos da origem do pacote).

O índice de serviço do nuget.org está localizado em https://api.nuget.org/v3/index.json.

Versioning

O version valor é uma cadeia de caracteres de versão parseável SemVer 2.0.0 que indica a versão do esquema do índice de serviço. A API determina que a cadeia de caracteres de versão tenha um número de versão principal de 3. À medida que alterações não significativas são feitas no esquema de índice de serviço, a versão secundária da cadeia de caracteres de versão será aumentada.

Cada recurso no índice de serviço é versão independentemente da versão do esquema de índice de serviço.

A versão atual do esquema é 3.0.0. A 3.0.0 versão é funcionalmente equivalente à versão mais antiga 3.0.0-beta.1 , mas deve ser preferencial, pois comunica mais claramente o esquema estável e definido.

HTTP methods

O índice de serviço é acessível usando métodos GET HTTP e HEAD.

Resources

A resources propriedade contém uma matriz de recursos com suporte por essa fonte de pacote.

Resource

Um recurso é um objeto na resources matriz. Ele representa uma funcionalidade com versão de uma fonte de pacote. Um recurso tem as seguintes propriedades:

Name Tipo Required Notes
@id cadeia yes A URL para o recurso
@type cadeia yes Uma constante de cadeia de caracteres que representa o tipo de recurso
comentário cadeia no Uma descrição legível humana do recurso

É @id uma URL que deve ser absoluta e deve ter o esquema HTTP ou HTTPS.

O @type é usado para identificar o protocolo específico a ser usado ao interagir com o recurso. O tipo do recurso é uma cadeia de caracteres opaca, mas geralmente tem o formato:

{RESOURCE_NAME}/{RESOURCE_VERSION}

Espera-se que os clientes codifiquem os @type valores que eles entendem e os procurem no índice de serviço de uma fonte de pacote. Os valores exatos @type em uso hoje são enumerados nos documentos de referência de recurso individuais listados na visão geral da API.

Para fins desta documentação, a documentação sobre recursos diferentes será essencialmente agrupada pelo {RESOURCE_NAME} índice encontrado no serviço que é análogo ao agrupamento por cenário.

Não há nenhum requisito de que cada recurso tenha um exclusivo @id ou @type. Cabe à implementação do cliente determinar qual recurso preferir em vez de outro. Uma implementação possível é que os recursos do mesmo ou compatíveis @type podem ser usados de forma round robin em caso de falha de conexão ou erro de servidor.

Um recurso pode usar um host ou domínio diferente do índice de serviço, mas isso pode causar problemas em ambientes com regras de rede estritas. Em particular, se o índice de serviço adicionar recursos que apontam diretamente para nuget.org (em vez de proxy ou cache por meio de seu próprio feed), o feed não funcionará onde o acesso a nuget.org estiver bloqueado. Se o feed vai delegar recursos específicos para nuget.org, recomendamos adicionar uma configuração para que, quando o feed for implantado, a referência de nuget.org direta possa ser removida do índice de serviço.

Sample request

GET https://api.nuget.org/v3/index.json

Sample response

{
  "version": "3.0.0",
  "resources": [
    {
      "@id": "https://api.nuget.org/v3-flatcontainer/",
      "@type": "PackageBaseAddress/3.0.0",
      "comment": "Base URL of Azure storage where NuGet package registration info for NET Core is stored, in the format https://api.nuget.org/v3-flatcontainer/{id-lower}/{id-lower}.{version-lower}.nupkg"
    },
    {
      "@id": "https://www.nuget.org/api/v2/package",
      "@type": "PackagePublish/2.0.0"
    },
    {
      "@id": "https://api-v2v3search-0.nuget.org/query",
      "@type": "SearchQueryService/3.0.0-rc",
      "comment": "Query endpoint of NuGet Search service (primary) used by RC clients"
    },
    {
      "@id": "https://api-v2v3search-0.nuget.org/autocomplete",
      "@type": "SearchAutocompleteService/3.0.0-rc",
      "comment": "Autocomplete endpoint of NuGet Search service (primary) used by RC clients"
    },
    {
      "@id": "https://api.nuget.org/v3/registration2/",
      "@type": "RegistrationsBaseUrl/3.0.0-rc",
      "comment": "Base URL of Azure storage where NuGet package registration info is stored used by RC clients. This base URL does not include SemVer 2.0.0 packages."
    }
  ]
}