Cari

Dimungkinkan untuk mencari paket yang tersedia di sumber paket menggunakan API V3. Sumber daya yang digunakan untuk pencarian adalah sumber daya yang SearchQueryService ditemukan dalam indeks layanan.

Penerapan versi

Nilai berikut @type digunakan:

@type nilai Catatan
SearchQueryService Rilis awal
SearchQueryService/3.0.0-beta Alias dari SearchQueryService
SearchQueryService/3.0.0-rc Alias dari SearchQueryService
SearchQueryService/3.5.0 Menyertakan dukungan untuk packageType parameter kueri

SearchQueryService/3.5.0

Versi ini memperkenalkan dukungan untuk packageType parameter kueri dan packageTypes properti respons, memungkinkan pemfilteran menurut jenis paket yang ditentukan penulis. Ini sepenuhnya kompatibel dengan kueri ke SearchQueryService.

URL Dasar

URL dasar untuk API berikut adalah nilai properti yang @id terkait dengan salah satu nilai sumber daya @type yang disebutkan di atas. Dalam dokumen berikut, URL {@id} dasar tempat penampung akan digunakan. URL dasar dapat berubah berdasarkan implementasi atau perubahan infrastruktur dalam sumber paket sehingga harus diambil secara dinamis dari indeks layanan oleh perangkat lunak klien.

Metode HTTP

Semua URL yang ditemukan di sumber daya pendaftaran mendukung metode GET HTTP dan HEAD.

Mencari paket

API pencarian memungkinkan klien untuk mengkueri halaman paket yang cocok dengan kueri pencarian tertentu. Interpretasi kueri pencarian (misalnya tokenisasi istilah pencarian) ditentukan oleh implementasi server tetapi harapan umumnya adalah bahwa kueri pencarian digunakan untuk mencocokkan ID paket, judul, deskripsi, dan tag. Bidang metadata paket lainnya juga dapat dipertimbangkan.

Paket yang tidak terdata tidak boleh muncul di hasil pencarian.

GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}

Parameter permintaan

Nama Dalam Jenis Diperlukan Catatan
q URL string no Istilah pencarian yang digunakan untuk memfilter paket
skip URL Integer no Jumlah hasil yang akan dilewati, untuk penomoran halaman
take URL Integer no Jumlah hasil yang akan dikembalikan, untuk penomoran halaman
Prerelease URL Boolean no true atau false menentukan apakah akan menyertakan paket pra-rilis
semVerLevel URL string no String versi SemVer 1.0.0
packageType URL string no Jenis paket yang digunakan untuk memfilter paket (ditambahkan dalam SearchQueryService/3.5.0)

Kueri q pencarian diurai dengan cara yang ditentukan oleh implementasi server. nuget.org mendukung pemfilteran dasar pada berbagai bidang. Jika tidak q ada yang disediakan, semua paket harus dikembalikan, dalam batas yang diberlakukan oleh lewati dan ambil. Ini memungkinkan tab "Telusuri" di pengalaman NuGet Visual Studio.

Parameter skip default ke 0.

Parameter take harus berupa bilangan bulat yang lebih besar dari nol. Implementasi server dapat memberlakukan nilai maksimum.

Catatan

nuget.org membatasi skip parameter hingga 3.000 dan take parameter hingga 1.000.

Jika prerelease tidak disediakan, paket pra-rilis dikecualikan.

Parameter semVerLevel kueri digunakan untuk ikut serta dalam paket SemVer 2.0.0. Jika parameter kueri ini dikecualikan, hanya paket dengan versi yang kompatibel Dengan SemVer 1.0.0 yang akan dikembalikan (dengan peringatan penerapan versi NuGet standar, seperti string versi dengan 4 bagian bilangan bulat). Jika semVerLevel=2.0.0 disediakan, paket kompatibel SemVer 1.0.0 dan SemVer 2.0.0 akan dikembalikan. Lihat dukungan SemVer 2.0.0 untuk nuget.org untuk informasi selengkapnya.

Parameter packageType digunakan untuk memfilter hasil pencarian lebih lanjut hanya ke paket yang memiliki setidaknya satu jenis paket yang cocok dengan nama jenis paket. Jika jenis paket yang disediakan bukan jenis paket yang valid seperti yang didefinisikan oleh dokumen Jenis Paket, hasil kosong akan dikembalikan. Jika jenis paket yang disediakan kosong, tidak ada filter yang akan diterapkan. Dengan kata lain, meneruskan tidak ada nilai ke parameter packageType akan berperilaku seolah-olah parameter tidak diteruskan.

Respons

Responsnya adalah dokumen JSON yang berisi hingga take hasil pencarian. Hasil pencarian dikelompokkan menurut ID paket.

Objek JSON akar memiliki properti berikut:

Nama Tipe Diperlukan Catatan
totalHits Integer yes Jumlah total kecocokan, pengalihan skip , dan take
data array objek yes Hasil pencarian cocok dengan permintaan

Hasil pencarian

Setiap item dalam data array adalah objek JSON yang terdiri dari sekelompok versi paket yang berbagi ID paket yang sama. Objek memiliki properti berikut:

Nama Tipe Diperlukan Catatan
id string yes ID paket yang cocok
versi string yes String versi SemVer 2.0.0 lengkap dari paket (dapat berisi metadata build)
description string no
versi array objek yes Semua versi paket yang cocok dengan prerelease parameter
penulis string atau array string no
iconUrl string no
licenseUrl string no
Pemilik string atau array string no
projectUrl string no
registrasi string no URL absolut ke indeks pendaftaran terkait
ringkasan string no
tag string atau array string no
title string no
totalUnduh Integer no Nilai ini dapat disimpulkan oleh jumlah unduhan dalam versions array
Diverifikasi Boolean no Boolean JSON yang menunjukkan apakah paket diverifikasi
packageTypes array objek yes Jenis paket yang ditentukan oleh pembuat paket (ditambahkan dalam SearchQueryService/3.5.0)

Pada nuget.org, paket terverifikasi adalah paket yang memiliki ID paket yang cocok dengan awalan ID yang dipesan dan dimiliki oleh salah satu pemilik prefiks yang dipesan. Untuk informasi selengkapnya, lihat dokumentasi tentang reservasi awalan ID.

Metadata yang terkandung dalam objek hasil pencarian diambil dari versi paket terbaru. Setiap item dalam versions array adalah objek JSON dengan properti berikut:

Nama Tipe Diperlukan Catatan
@id string yes URL absolut ke daun pendaftaran terkait
versi string yes String versi SemVer 2.0.0 lengkap dari paket (dapat berisi metadata build)
Mingguan Integer yes Jumlah unduhan untuk versi paket tertentu ini

Array packageTypes akan selalu terdiri dari setidaknya satu (1) item. Jenis paket untuk ID paket tertentu dianggap sebagai jenis paket yang ditentukan oleh versi terbaru paket sehubungan dengan parameter pencarian lainnya. Setiap item dalam packageTypes array adalah objek JSON dengan properti berikut:

Nama Tipe Diperlukan Catatan
nama string yes Nama jenis paket.

Permintaan sampel

GET https://search-sample.nuget.org/query?q=NuGet.Versioning&prerelease=false&semVerLevel=2.0.0

Pastikan untuk mengambil URL dasar (https://search-sample.nuget.org/query dalam sampel ini) dari indeks layanan seperti yang disebutkan di bagian URL dasar.

Respon sampel

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