要與 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 | 被ID與VERSION(選用)參照的套件不存在 |