共用方式為


nuget.org 協議

要與 nuget.org 交互,客戶端需要遵循某些協議。 由於這些通訊協定會不斷演進,因此用戶端必須識別呼叫特定 nuget.org API 時使用的通訊協定版本。 這可讓 nuget.org 以非中斷性的方式為舊用戶端引進變更。

備註

本頁所記載的 API 是 nuget.org 特有的,而且預期其他 NuGet 伺服器實作不會引進這些 API。

如需在 NuGet 生態系統中廣泛實作的 NuGet API 相關資訊,請參閱 API 概觀

本主題列出各種通訊協定的出現時間。

NuGet 通訊協定 4.1.0 版

4.1.0 通訊協定指定使用驗證範圍金鑰來與 nuget.org 以外的服務互動,以針對 nuget.org 帳戶驗證套件。 請注意, 4.1.0 版本號碼是不透明的字串,但恰好與支援此通訊協定的官方 NuGet 用戶端的第一個版本一致。

驗證確保使用者創建的 API 金鑰僅用於 nuget.org,並且對於來自第三方服務的其他驗證或確認,則透過一次性使用的範圍驗證金鑰來處理。 這些驗證範圍金鑰可用來驗證套件是否屬於 nuget.org 上的特定使用者 (帳戶)。

客戶要求

用戶端在進行 API 呼叫以 將套件推送 至 nuget.org 時,必須傳遞下列標頭:

X-NuGet-Protocol-Version: 4.1.0

請注意, X-NuGet-Client-Version 標頭具有類似的語意,但保留為僅供官方 NuGet 用戶端使用。 第三方用戶端應該使用 X-NuGet-Protocol-Version 標頭和值。

推送通訊協定本身在資源的PackagePublish檔案中說明。

如果用戶端與外部服務互動,且需要驗證套件是否屬於特定使用者 (帳戶),則應使用下列通訊協定,並使用驗證範圍金鑰,而不是來自 nuget.org 的 API 金鑰。

要求驗證範圍金鑰的 API

此 API 可用來取得 nuget.org 作者的驗證範圍金鑰,以驗證他/她擁有的套件。

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

要求參數

名稱 In 類型 為必填項目 註釋
ID URL 字串 yes 要驗證範圍密鑰所需的套件識別碼
VERSION URL 字串 no 套件版本
X-NuGet-ApiKey Header 字串 yes 例如, X-NuGet-ApiKey: {USER_API_KEY}

回應

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

API 用於確認範圍鍵的正確性

此 API 可用來驗證 nuget.org 作者所擁有的套件的驗證範圍金鑰。

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

要求參數

名稱 In 類型 為必填項目 註釋
ID URL 字串 yes 要求驗證範圍金鑰的套件識別碼
VERSION URL 字串 no 套件版本
X-NuGet-ApiKey Header 字串 yes 例如, X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

備註

此驗證範圍 API 金鑰會在一天內或首次使用時到期,以先發生者為準。

回應

狀態代碼 Meaning
200 API 金鑰有效
403 API 金鑰無效或未獲授權推送到套件
404 IDVERSION(選用)參照的套件不存在