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}

要求參數

名稱 位於 類型 必要 備註
識別碼 URL string 要求驗證範圍金鑰的套件識別碼
VERSION URL string 套件版本
X-NuGet-ApiKey 標頭 string 例如,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}

要求參數

名稱 位於 類型 必要 備註
識別碼 URL string 要求驗證範圍金鑰的封裝標識碼
VERSION URL string 套件版本
X-NuGet-ApiKey 標頭 string 例如,X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

注意

此驗證範圍 API 金鑰會在一天的時間或第一次使用時到期,無論發生於哪一個。

回應

狀態碼 意義
200 API 金鑰有效
403 API 金鑰無效或無權推送至套件
404 VERSION 參考ID的套件不存在(選擇性 )