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 SearchQueryServicetamamen 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 HEADHTTP 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.0eklenir)

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.0eklenir)

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:

Adı Tür Zorunlu Notlar
@id string evet İlişkili kayıt yaprağının mutlak URL'si
sürüm string evet Paketin tam SemVer 2.0.0 sürüm dizesi (derleme meta verileri içerebilir)
indirmeler integer evet Bu özel paket sürümü için indirme sayısı

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/querybu ö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"
        }
      ]
    }
  ]
}