Bagikan melalui


Protokol nuget.org

Untuk berinteraksi dengan nuget.org, klien harus mengikuti protokol tertentu. Karena protokol ini terus berkembang, klien harus mengidentifikasi versi protokol yang mereka gunakan saat memanggil API nuget.org tertentu. Ini memungkinkan nuget.org memperkenalkan perubahan dengan cara yang tidak melanggar untuk klien lama.

Catatan

API yang didokumenkan di halaman ini khusus untuk nuget.org dan tidak ada harapan untuk implementasi server NuGet lainnya untuk memperkenalkan API ini.

Untuk informasi tentang NUGet API yang diterapkan secara luas di seluruh ekosistem NuGet, lihat gambaran umum API.

Topik ini mencantumkan berbagai protokol sebagai dan kapan mereka muncul.

Protokol NuGet versi 4.1.0

Protokol 4.1.0 menentukan penggunaan kunci cakupan verifikasi untuk berinteraksi dengan layanan selain nuget.org, untuk memvalidasi paket terhadap akun nuget.org. Perhatikan bahwa 4.1.0 nomor versi adalah string buram tetapi kebetulan bertepatan dengan versi pertama klien NuGet resmi yang mendukung protokol ini.

Validasi memastikan bahwa kunci API yang dibuat pengguna hanya digunakan dengan nuget.org, dan verifikasi atau validasi lain dari layanan pihak ketiga ditangani melalui kunci cakupan verifikasi penggunaan satu kali. Kunci cakupan verifikasi ini dapat digunakan untuk memvalidasi bahwa paket tersebut milik pengguna tertentu (akun) di nuget.org.

Persyaratan klien

Klien diharuskan meneruskan header berikut saat mereka melakukan panggilan API untuk mendorong paket ke nuget.org:

X-NuGet-Protocol-Version: 4.1.0

Perhatikan bahwa X-NuGet-Client-Version header memiliki semantik yang sama tetapi dicadangkan untuk hanya digunakan oleh klien NuGet resmi. Klien pihak ketiga harus menggunakan X-NuGet-Protocol-Version header dan nilai.

Protokol push itu sendiri dijelaskan dalam dokumentasi untuk PackagePublish sumber daya.

Jika klien berinteraksi dengan layanan eksternal dan perlu memvalidasi apakah paket milik pengguna tertentu (akun), klien harus menggunakan protokol berikut dan menggunakan kunci cakupan verifikasi dan bukan kunci API dari nuget.org.

API untuk meminta kunci cakupan verifikasi

API ini digunakan untuk mendapatkan kunci cakupan verifikasi bagi penulis nuget.org untuk memvalidasi paket yang dimiliki olehnya.

POST api/v2/package/create-verification-key/{ID}/{VERSION}

Parameter permintaan

Nama Dalam Jenis Diperlukan Catatan
ID URL string yes Pengidentifikasi paket yang kunci cakupan verifikasinya diminta
VERSION URL string no Versi paket
X-NuGet-ApiKey Header string yes Misalnya: X-NuGet-ApiKey: {USER_API_KEY}

Respons

{
    "Key": "{Verify scope key from nuget.org}",
    "Expires": "{Date}"
}

API untuk memverifikasi kunci cakupan verifikasi

API ini digunakan untuk memvalidasi kunci cakupan verifikasi untuk paket yang dimiliki oleh penulis nuget.org.

GET api/v2/verifykey/{ID}/{VERSION}

Parameter permintaan

Nama Dalam Jenis Diperlukan Catatan
ID URL string yes Pengidentifikasi paket yang kunci cakupan verifikasinya diminta
VERSION URL string no Versi paket
X-NuGet-ApiKey Header string yes Misalnya: X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

Catatan

Ini memverifikasi cakupan kunci API kedaluwarsa dalam waktu sehari atau pada penggunaan pertama, mana pun yang terjadi terlebih dahulu.

Respons

Kode status Makna
200 Kunci API valid
403 Kunci API tidak valid atau tidak berwenang untuk mendorong terhadap paket
404 Paket yang dirujuk oleh ID dan VERSION (opsional) tidak ada