Partilhar via


Service index

O índice de serviço é um documento JSON que é o ponto de entrada para uma fonte de pacote NuGet e permite que uma implementação de 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 recursos da origem do pacote).

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

Versioning

O version valor é uma cadeia de caracteres de versão analisável do SemVer 2.0.0 que indica a versão do esquema do índice de serviço. A API exige que a cadeia de caracteres de versão tenha um número de versão principal de 3. À medida que forem feitas alterações ininterruptas 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 é versionado 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 preferida, 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 suportados por esta fonte de pacote.

Resource

Um recurso é um objeto na resources matriz. Ele representa um recurso versionado de uma fonte de pacote. Um recurso tem as seguintes propriedades:

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

O @id é um URL que deve ser absoluto 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 codificem os @type valores que entendem e os procurem no índice de serviço de uma fonte de pacote. Os valores exatos @type em uso atualmente são enumerados nos documentos de referência de recursos individuais listados na visão geral da API.

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

Não há nenhum requisito de que cada recurso tenha um único @id ou @type. Cabe à implementação do cliente determinar qual recurso preferir em relação a outro. Uma implementação possível é que recursos do mesmo ou compatíveis @type podem ser usados de forma round-robin em caso de falha de conexão ou erro do 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 rígidas. Em particular, se seu índice de serviço adicionar recursos que apontem diretamente para nuget.org (em vez de proxy ou cache por meio de seu próprio feed), seu feed não funcionará onde o acesso a nuget.org estiver bloqueado. Se o feed for delegar recursos específicos ao 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."
    }
  ]
}