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 | Wajib | 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 | Wajib | 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:
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:
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 | Wajib | 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"
}
]
}
]
}