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.

Nota

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 saat dan ketika mereka diperkenalkan.

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 header X-NuGet-Client-Version memiliki semantik yang sama tetapi dicadangkan hanya untuk 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 verifikasi cakupan bagi penulis paket di NuGet.org untuk memvalidasi paket yang dimiliki olehnya.

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

Parameter permintaan tersebut

Nama In Tipe 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}

Jawaban

{
    "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 tersebut

Nama In Tipe 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}

Nota

Kunci API cakupan verifikasi ini berlaku dalam waktu sehari atau pada penggunaan pertama, mana pun yang terjadi terlebih dahulu.

Jawaban

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