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 HEAD
kullanı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 @type
olması 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."
}
]
}