Indice dei servizi

L'indice del servizio è un documento JSON che rappresenta il punto di ingresso per un'origine del pacchetto NuGet e consente a un'implementazione client di individuare le funzionalità dell'origine del pacchetto. L'indice del servizio è un oggetto JSON con due proprietà obbligatorie: version (la versione dello schema dell'indice del servizio) e resources (gli endpoint o le funzionalità dell'origine del pacchetto).

L'indice del servizio di nuget.org si trova in https://api.nuget.org/v3/index.json.

Controllo delle versioni

Il version valore è una stringa di versione analizzabile SemVer 2.0.0 che indica la versione dello schema dell'indice del servizio. L'API impone che la stringa di versione abbia un numero di versione principale di 3. Man mano che vengono apportate modifiche non di rilievo allo schema dell'indice del servizio, la versione secondaria della stringa di versione verrà aumentata.

Ogni risorsa nell'indice del servizio viene eseguita in modo indipendente dalla versione dello schema dell'indice del servizio.

La versione corrente dello schema è 3.0.0. La 3.0.0 versione è funzionalmente equivalente alla versione precedente 3.0.0-beta.1 , ma deve essere preferita perché comunica più chiaramente lo schema stabile e definito.

Metodi HTTP

L'indice del servizio è accessibile tramite metodi GET HTTP e HEAD.

Risorse

La resources proprietà contiene una matrice di risorse supportate da questa origine del pacchetto.

Conto risorse

Una risorsa è un oggetto nella resources matrice. Rappresenta una funzionalità con controllo delle versioni di un'origine del pacchetto. Una risorsa ha le proprietà seguenti:

Nome Digita Obbligatorio Note
@id string yes URL della risorsa
@type string yes Costante stringa che rappresenta il tipo di risorsa
commento string no Descrizione leggibile della risorsa

@id è un URL che deve essere assoluto e deve avere lo schema HTTP o HTTPS.

Viene @type usato per identificare il protocollo specifico da usare durante l'interazione con la risorsa. Il tipo della risorsa è una stringa opaca, ma in genere ha il formato:

{RESOURCE_NAME}/{RESOURCE_VERSION}

I client devono impostare come hardcoded i @type valori che comprendono e li cercano nell'indice del servizio di un'origine del pacchetto. I valori esatti @type in uso oggi vengono enumerati nei singoli documenti di riferimento delle risorse elencati nella panoramica dell'API.

Ai fini di questa documentazione, la documentazione relativa alle diverse risorse verrà essenzialmente raggruppata in base all'elemento {RESOURCE_NAME} presente nell'indice del servizio analogo al raggruppamento per scenario.

Non è necessario che ogni risorsa abbia un valore univoco @id o @type. Spetta all'implementazione del client determinare quale risorsa preferire rispetto a un'altra. Una possibile implementazione consiste nel fatto che le risorse della stessa o compatibile @type possono essere usate in modo round robin in caso di errore di connessione o errore del server.

Esempio di richiesta

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

Risposta di esempio

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