Hizmet dizini

Hizmet dizini, NuGet paket kaynağının giriş noktası olan ve istemci uygulamasının paket kaynağının özelliklerini bulmasına olanak tanıyan bir JSON belgesidir. Hizmet dizini, iki gerekli özelliğe sahip bir JSON nesnesidir: version (hizmet dizininin şema sürümü) ve resources (paket kaynağının uç noktaları veya özellikleri).

nuget.org'un hizmet dizini konumundadır https://api.nuget.org/v3/index.json.

Sürüm oluşturma

version Değer, hizmet dizininin şema sürümünü gösteren bir SemVer 2.0.0 ayrıştırılabilir sürüm dizesidir. API, sürüm dizesinin ana sürüm numarasına sahip olması zorunlu kılınmıştır 3. Hizmet dizini şemasında hataya neden olmayan değişiklikler yapıldığından, sürüm dizesinin ikincil sürümü artırılır.

Hizmet dizinindeki her kaynak, hizmet dizini şema sürümünden bağımsız olarak oluşturulur.

Geçerli şema sürümü şeklindedir 3.0.0. Sürüm 3.0.0 işlevsel olarak eski 3.0.0-beta.1 sürüme eşdeğerdir, ancak kararlı, tanımlı şemayı daha net bir şekilde ilettiklerinden tercih edilmelidir.

HTTP yöntemleri

Hizmet dizinine HTTP yöntemleri GET ve HEADkullanılarak erişilebilir.

Kaynaklar

özelliği, resources bu paket kaynağı tarafından desteklenen bir kaynak dizisi içerir.

Kaynak

Kaynak, dizideki resources bir nesnedir. Paket kaynağının sürümleştirilmiş bir özelliğini temsil eder. Bir kaynak aşağıdaki özelliklere sahiptir:

Adı Tür Zorunlu Notlar
@id string evet Kaynağın URL'si
@type string evet Kaynak türünü temsil eden bir dize sabiti
yorum Dize hayır Kaynağın okunabilir bir açıklaması

, @id mutlak olması ve HTTP veya HTTPS şemasına sahip olması gereken bir URL'dir.

@type, kaynakla etkileşim kurarken kullanılacak belirli protokolü tanımlamak için kullanılır. Kaynağın türü opak bir dizedir ancak genel olarak şu biçime sahiptir:

{RESOURCE_NAME}/{RESOURCE_VERSION}

İstemcilerin anladıkları değerleri sabit olarak kodlayıp @type bir paket kaynağının hizmet dizininde aramaları beklenir. Bugün kullanımda olan tam @type değerler, API'ye genel bakış bölümünde listelenen tek tek kaynak başvuru belgelerinde numaralandırılır.

Bu belgenin iyiliği için, farklı kaynaklar hakkındaki belgeler temelde hizmet dizininde bulunan ve senaryoya göre gruplandırmaya benzer şekilde gruplandırılacaktır {RESOURCE_NAME} .

Her kaynağın benzersiz @id veya @typeolması gerekmez. Başka bir kaynak yerine hangi kaynağı tercih etmek istemci uygulamasına bağlıdır. Olası bir uygulama, aynı veya uyumlu @type kaynakların bağlantı hatası veya sunucu hatası durumunda hepsini bir kez deneme yöntemiyle kullanılabilmesidir.

Örnek isteği

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

Örnek yanıt

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