Arama yap
V3 API'sini kullanarak bir paket kaynağında kullanılabilen paketleri aramak mümkündür. Arama için kullanılan kaynak, hizmet dizininde bulunan kaynaktırSearchQueryService
.
Sürüm oluşturma
Aşağıdaki @type
değerler kullanılır:
@type Değer | Notlar |
---|---|
SearchQueryService | İlk sürüm |
SearchQueryService/3.0.0-beta | Diğer adı SearchQueryService |
SearchQueryService/3.0.0-rc | Diğer adı SearchQueryService |
SearchQueryService/3.5.0 | Sorgu parametresi desteğini packageType içerir |
SearchQueryService/3.5.0
Bu sürüm, sorgu parametresi ve yanıt özelliği için packageType
destek sunar ve packageTypes
yazar tanımlı paket türlerine göre filtrelemeye olanak sağlar. ile yapılan sorgularla SearchQueryService
tamamen geriye dönük uyumludur.
Temel URL
Aşağıdaki API'nin temel URL'si, yukarıda belirtilen kaynak @type
değerlerinden biriyle ilişkili özelliğin değeridir@id
. Aşağıdaki belgede yer tutucu temel URL'si {@id}
kullanılacaktır. Temel URL, paket kaynağındaki uygulama veya altyapı değişikliklerine göre değişebilir, bu nedenle istemci yazılımı tarafından hizmet dizininden dinamik olarak getirilmesi gerekir.
HTTP yöntemleri
Kayıt kaynağında bulunan tüm URL'ler ve HEAD
HTTP yöntemlerini desteklerGET
.
Paketleri arama
Arama API'si, istemcinin belirtilen arama sorgusuyla eşleşen bir paket sayfasını sorgulamasına olanak tanır. Arama sorgusunun yorumu (örneğin, arama terimlerinin belirteci) sunucu uygulaması tarafından belirlenir, ancak genel beklenti arama sorgusunun paket kimlikleri, başlıkları, açıklamaları ve etiketleri eşleştirmek için kullanılmasıdır. Diğer paket meta veri alanları da göz önünde bulundurulabilir.
Listelenmemiş bir paket hiçbir zaman arama sonuçlarında gösterilmemelidir.
GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
İstek parametreleri
Veri Akışı Adı | İçinde | Type | Zorunlu | Notlar |
---|---|---|---|---|
q | URL | Dize | hayır | Paketleri filtrelemek için kullanılacak arama terimleri |
skip | URL | integer | hayır | Sayfalandırma için atlanması gereken sonuç sayısı |
take | URL | integer | hayır | Sayfalandırma için döndürülecek sonuç sayısı |
ön sürüm | URL | boolean | hayır | true veya false yayın öncesi paketlerin dahil edilip edilmeyeceğini belirleme |
semVerLevel | URL | Dize | hayır | SemVer 1.0.0 sürüm dizesi |
packageType | URL | Dize | hayır | Paketleri filtrelemek için kullanılacak paket türü (içinde SearchQueryService/3.5.0 eklenir) |
Arama sorgusu q
, sunucu uygulaması tarafından tanımlanan şekilde ayrıştırılır. nuget.org çeşitli alanlarda temel filtrelemeyi destekler. Sağlanmadıysa q
, atla ve al tarafından uygulanan sınırlar içinde tüm paketler döndürülmelidir. Bu, NuGet Visual Studio deneyiminde "Gözat" sekmesini etkinleştirir.
skip
parametresi varsayılan olarak 0'dır.
parametresi sıfırdan take
büyük bir tamsayı olmalıdır. Sunucu uygulaması en yüksek değeri uygulayabilir.
Not
nuget.org parametresini skip
3.000 ve parametresini take
1.000 ile sınırlar.
Sağlanmazsa prerelease
, yayın öncesi paketler hariç tutulur.
Sorgu semVerLevel
parametresi, SemVer 2.0.0 paketlerini kabul etmek için kullanılır.
Bu sorgu parametresi dışlanırsa, yalnızca SemVer 1.0.0 uyumlu sürümlere sahip paketler döndürülür (4 tamsayı parçası olan sürüm dizeleri gibi standart NuGet sürüm oluşturma uyarılarıyla).
Sağlanırsa semVerLevel=2.0.0
hem SemVer 1.0.0 hem de SemVer 2.0.0 uyumlu paketler döndürülür. Daha fazla bilgi için nuget.org için SemVer 2.0.0 desteğine bakın.
packageType
parametresi, arama sonuçlarını yalnızca paket türü adıyla eşleşen en az bir paket türüne sahip paketlere göre daha fazla filtrelemek için kullanılır.
Sağlanan paket türü, Paket Türü belgesi tarafından tanımlanan geçerli bir paket türü değilse, boş bir sonuç döndürülür.
Sağlanan paket türü boşsa filtre uygulanmaz. Başka bir deyişle packageType parametresine hiçbir değer geçirilmemesi, parametre geçirilmemiş gibi davranır.
Response
Yanıt, en fazla take
arama sonuçlarını içeren JSON belgesidir. Arama sonuçları paket kimliğine göre gruplandırılır.
Kök JSON nesnesi aşağıdaki özelliklere sahiptir:
Adı | Tür | Zorunlu | Notlar |
---|---|---|---|
totalHits | integer | evet | Toplam eşleşme sayısı, göz ardı etme skip ve take |
veriler | nesne dizisi | evet | İstekle eşleşen arama sonuçları |
Arama sonucu
Dizideki data
her öğe, aynı paket kimliğini paylaşan bir grup paket sürümünden oluşan bir JSON nesnesidir.
Nesnesi aşağıdaki özelliklere sahiptir:
Adı | Tür | Zorunlu | Notlar |
---|---|---|---|
id | string | evet | Eşleşen paketin kimliği |
sürüm | string | evet | Paketin tam SemVer 2.0.0 sürüm dizesi (derleme meta verileri içerebilir) |
açıklama | Dize | hayır | |
versions | nesne dizisi | evet | Parametresiyle eşleşen prerelease paketin tüm sürümleri |
Yazar | dize veya dize dizisi | hayır | |
iconUrl | Dize | hayır | |
licenseUrl | Dize | hayır | |
Sahipleri | dize veya dize dizisi | hayır | Dize, tek bir sahibin kullanıcı adını temsil eder |
projectUrl | Dize | hayır | |
kayıt | Dize | hayır | İlişkili kayıt dizininin mutlak URL'si |
Özet | Dize | hayır | |
tags | dize veya dize dizisi | hayır | |
Başlık | Dize | hayır | |
totalDownloads | integer | hayır | Bu değer dizideki indirmelerin versions toplamıyla çıkarılabilir |
Doğrulandı | boolean | hayır | Paketin doğrulanıp doğrulanmadığını gösteren JSON boole değeri |
packageTypes | nesne dizisi | evet | Paket yazarı tarafından tanımlanan paket türleri (içinde SearchQueryService/3.5.0 eklenir) |
nuget.org doğrulanmış paket, ayrılmış kimlik ön eki ile eşleşen bir paket kimliğine sahip olan ve ayrılmış ön ekin sahiplerinden birine ait olan pakettir. Daha fazla bilgi için kimlik ön eki ayırma hakkındaki belgelere bakın.
Arama sonucu nesnesinde yer alan meta veriler en son paket sürümünden alınır. Dizideki versions
her öğe aşağıdaki özelliklere sahip bir JSON nesnesidir:
Dizi packageTypes
her zaman en az bir (1) öğeden oluşur. Belirli bir paket kimliği için paket türü, diğer arama parametrelerine göre paketin en son sürümü tarafından tanımlanan paket türleri olarak kabul edilir. Dizideki packageTypes
her öğe aşağıdaki özelliklere sahip bir JSON nesnesidir:
Adı | Tür | Zorunlu | Notlar |
---|---|---|---|
Adı | string | evet | Paket türünün adı. |
Örnek isteği
GET https://search-sample.nuget.org/query?q=NuGet.Versioning&prerelease=false&semVerLevel=2.0.0
Temel URL bölümünde belirtildiği gibi hizmet dizininden temel URL'yi (https://search-sample.nuget.org/query
bu örnekte) getirdiğinizden emin olun.
Örnek yanıt
{
"totalHits": 2,
"data": [
{
"registration": "https://api.nuget.org/v3/registration-sample/nuget.versioning/index.json",
"id": "NuGet.Versioning",
"version": "4.4.0",
"description": "NuGet's implementation of Semantic Versioning.",
"summary": "",
"title": "NuGet.Versioning",
"licenseUrl": "https://raw.githubusercontent.com/NuGet/NuGet.Client/dev/LICENSE.txt",
"tags": [ "semver", "semantic", "versioning" ],
"authors": [ "NuGet" ],
"totalDownloads": 141896,
"verified": true,
"packageTypes": [
{
"name": "Dependency"
}
],
"versions": [
{
"version": "3.3.0",
"downloads": 50343,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/3.3.0.json"
},
{
"version": "3.4.3",
"downloads": 27932,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/3.4.3.json"
},
{
"version": "4.0.0",
"downloads": 63004,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/4.0.0.json"
},
{
"version": "4.4.0",
"downloads": 617,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/4.4.0.json"
}
]
},
{
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/index.json",
"@type": "Package",
"registration": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/index.json",
"id": "Nerdbank.GitVersioning",
"version": "2.0.41",
"description": "Stamps your assemblies with semver 2.0 compliant git commit specific version information and provides NuGet versioning information as well.",
"summary": "Stamps your assemblies with semver 2.0 compliant git commit specific version information and provides NuGet versioning information as well.",
"title": "Nerdbank.GitVersioning",
"licenseUrl": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/ed547462f7/LICENSE.txt",
"projectUrl": "http://github.com/aarnott/Nerdbank.GitVersioning",
"tags": [ "git", "commit", "versioning", "version", "assemblyinfo" ],
"authors": [ "Andrew Arnott" ],
"totalDownloads": 11906,
"verified": false,
"versions": [
{
"version": "1.6.35",
"downloads": 10229,
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/1.6.35.json"
},
{
"version": "2.0.41",
"downloads": 1677,
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/2.0.41.json"
}
]
}
]
}