Service index

Tjänstindexet är ett JSON-dokument som är startpunkten för en NuGet-paketkälla och gör att en klientimplementering kan identifiera paketkällans funktioner. Tjänstindexet är ett JSON-objekt med två nödvändiga egenskaper: version (schemaversionen av tjänstindexet) och resources (paketkällans slutpunkter eller funktioner).

nuget.orgs tjänstindex finns på https://api.nuget.org/v3/index.json.

Versioning

Värdet version är en SemVer 2.0.0-parsningsbar versionssträng som anger schemaversionen av tjänstindexet. API:et kräver att versionssträngen har ett större versionsnummer 3. Eftersom icke-icke-bakåtkompatibla ändringar görs i tjänstindexschemat ökas versionssträngens delversion.

Varje resurs i tjänstindexet är versionshanterad oberoende av schemaversionen för tjänstindex.

Den aktuella schemaversionen är 3.0.0. Versionen 3.0.0 är funktionellt likvärdig med den äldre 3.0.0-beta.1 versionen men bör föredras eftersom den tydligare kommunicerar det stabila, definierade schemat.

HTTP methods

Tjänstindexet är tillgängligt med hjälp av HTTP-metoder GET och HEAD.

Resources

Egenskapen resources innehåller en matris med resurser som stöds av den här paketkällan.

Resource

En resurs är ett objekt i matrisen resources . Den representerar en version av en paketkällas kapacitet. En resurs har följande egenskaper:

Name Type Required Notes
@id string yes URL:en till resursen
@type string yes En strängkonstant som representerar resurstypen
comment string no En läsbar beskrivning av resursen

@id är en URL som måste vara absolut och måste antingen ha HTTP- eller HTTPS-schemat.

@type Används för att identifiera det specifika protokoll som ska användas när du interagerar med resursen. Resurstypen är en ogenomskinlig sträng men har vanligtvis formatet:

{RESOURCE_NAME}/{RESOURCE_VERSION}

Klienter förväntas hårdkoda de @type värden som de förstår och leta upp dem i en paketkällas tjänstindex. De exakta @type värden som används idag räknas upp i de enskilda resursreferensdokumenten som anges i API-översikten.

För den här dokumentationens skull grupperas dokumentationen om olika resurser i princip efter det {RESOURCE_NAME} som finns i tjänstindexet, vilket motsvarar gruppering efter scenario.

Det finns inget krav på att varje resurs har en unik @id eller @type. Det är upp till klientimplementeringen att avgöra vilken resurs som ska föredras framför en annan. En möjlig implementering är att resurser av samma eller kompatibla @type kan användas på ett resursallokeringssätt i händelse av anslutningsfel eller serverfel.

En resurs kan använda en annan värd eller domän än tjänstindexet, men detta kan orsaka problem i miljöer med strikta nätverksregler. Särskilt om tjänstindexet lägger till resurser som pekar direkt på nuget.org (i stället för proxykörning eller cachelagring via ditt eget flöde) fungerar inte feeden där åtkomsten till nuget.org blockeras. Om feeden ska delegera vissa resurser till nuget.org rekommenderar vi att du lägger till en konfiguration så att den direkta nuget.org referensen kan tas bort från tjänstindexet när feeden distribueras.

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."
    }
  ]
}