Otomatik Tamamlama
V3 API'sini kullanarak paket kimliği ve sürüm otomatik tamamlama deneyimi oluşturmak mümkündür. Otomatik tamamlama sorguları yapmak için kullanılan kaynak, hizmet dizininde bulunan kaynaktırSearchAutocompleteService
.
Sürüm oluşturma
Aşağıdaki @type
değerler kullanılır:
@type Değer | Notlar |
---|---|
SearchAutocompleteService | İlk sürüm |
SearchAutocompleteService/3.0.0-beta | Diğer adı SearchAutocompleteService |
SearchAutocompleteService/3.0.0-rc | Diğer adı SearchAutocompleteService |
SearchAutocompleteService/3.5.0 | Sorgu parametresi desteğini packageType içerir |
SearchAutocompleteService/3.5.0
Bu sürüm, yazar tanımlı paket türlerine packageType
göre filtrelemeye izin veren sorgu parametresi desteği sunar. ile yapılan sorgularla SearchAutocompleteService
tamamen geriye dönük uyumludur.
Temel URL
Aşağıdaki API'lerin 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
.
Paket kimliklerini arama
İlk otomatik tamamlama API'si, paket kimliği dizesinin bir kısmını aramayı destekler. NuGet paket kaynağıyla tümleştirilmiş bir kullanıcı arabiriminde paket türü başlığı özelliği sağlamak istediğinizde bu harikadır.
Yalnızca listelenmemiş sürümlere sahip bir paket sonuçlarda görünmez.
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 | Paket kimlikleriyle karşılaştırılan dize |
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 SearchAutocompleteService/3.5.0 eklenir) |
Otomatik tamamlama sorgusu q
, sunucu uygulaması tarafından tanımlanan şekilde ayrıştırılır. nuget.org, özgün değeri deve olayı ve sembol karakterlerine bölerek oluşturulan kimliğin parçaları olan paket kimliği belirteçlerinin ön ekini sorgulamayı destekler.
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.
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 paket kimlikleri döndürülür ( 4 tamsayı parçalı 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, otomatik tamamlama 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, parametreye packageType
hiçbir değer geçirilmemesi, parametre geçirilmemiş gibi davranır.
Response
Yanıt, en fazla take
otomatik tamamlama sonuçlarını içeren JSON belgesidir.
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 | dizeler dizisi | evet | İstekle eşleşen paket kimlikleri |
Örnek isteği
GET https://search-sample.nuget.org/autocomplete?q=storage&prerelease=true
Temel URL bölümünde belirtildiği gibi hizmet dizininden temel URL'yi (https://search-sample.nuget.org/autocomplete
bu örnekte) getirdiğinizden emin olun.
Örnek yanıt
{
"totalHits": 571,
"data": [
"WindowsAzure.Storage",
"Storage.Net",
"CK.Storage",
"NCL.Storage",
"DK.Storage",
"Nine.Storage.Test",
"Touch.Storage.Aws",
"StorageAPIClient",
"StorageAccess",
"Storage.Net.Microsoft.Azure.Storage",
"UnofficialAzure.StorageClient",
"StorageAccess12",
"AWSSDK.StorageGateway",
"StorageExtensions",
"Cloud.Storage",
"lighthouse.storage",
"ZU.Storage.Redis",
"Magicodes.Storage",
"Masticore.Storage",
"hq.storage"
]
}
Paket sürümlerini listeleme
Önceki API kullanılarak bir paket kimliği bulunduktan sonra, istemci sağlanan paket kimliği için paket sürümlerini listelemek için otomatik tamamlama API'sini kullanabilir.
Listede olmayan bir paket sürümü sonuçlarda görünmez.
GET {@id}?id={ID}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}
İstek parametreleri
Veri Akışı Adı | İçinde | Type | Zorunlu | Notlar |
---|---|---|---|---|
id | URL | Dize | evet | Sürümlerin getirilmeye hazır olduğu paket kimliği |
ö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 2.0.0 sürüm dizesi |
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 sürümleri döndürülür. Sağlanırsa semVerLevel=2.0.0
, hem SemVer 1.0.0 hem de SemVer 2.0.0 sürümleri döndürülür. Daha fazla bilgi için nuget.org için SemVer 2.0.0 desteğine bakın.
Response
Yanıt, sağlanan paket kimliğinin tüm paket sürümlerini içeren ve verilen sorgu parametrelerine göre filtrelemeyi içeren JSON belgesidir.
Kök JSON nesnesi aşağıdaki özelliğe sahiptir:
Adı | Tür | Zorunlu | Notlar |
---|---|---|---|
veriler | dizeler dizisi | evet | İstekle eşleşen paket sürümleri |
Dizideki data
paket sürümleri, sorgu dizesinde sağlanmışsa semVerLevel=2.0.0
SemVer 2.0.0 derleme meta verilerini (örneğin1.0.0+metadata
) içerebilir.
Örnek isteği
GET https://api-v2v3search-0.nuget.org/autocomplete?id=nuget.protocol&prerelease=true
Örnek yanıt
{
"data": [
"4.3.0-preview3-4168",
"4.3.0-preview4",
"4.3.0-rtm-4324",
"4.3.0",
"4.4.0-preview3-4475",
"4.4.0"
]
}