推送與刪除
視伺服器實作而定,可以推送、刪除或取消清單,並使用 NuGet V3 API 重新列出套件。 這些作業是以PackagePublish
服務索引中找到的資源為基礎。
版本控制
使用下列 @type
值:
@type 值 | 備註 |
---|---|
PackagePublish/2.0.0 | 初始版本 |
基礎 URL
下列 API 的基底 URL 是@id
套件來源服務索引中資源的 屬性值PackagePublish/2.0.0
。 針對下列檔,會使用 nuget.org 的URL。 請考慮 https://www.nuget.org/api/v2/package
作為服務索引中找到值的佔位元 @id
。
請注意,此 URL 指向與舊版 V2 推送端點相同的位置,因為通訊協定相同。
HTTP 方法
此 PUT
資源支援、 POST
和 DELETE
HTTP 方法。 如需每個端點支援的方法,請參閱下方。
推送套件
注意
nuget.org 有 與推送端點互動的其他需求 。
nuget.org 支援使用下列 API 推送新的套件。 如果已存在具有所提供標識碼和版本的套件,nuget.org 將會拒絕推送。 其他套件來源可能支援取代現有的套件。
PUT https://www.nuget.org/api/v2/package
要求參數
名稱 | 位於 | 類型 | 必要 | 備註 |
---|---|---|---|---|
X-NuGet-ApiKey | 標頭 | string | 是 | 例如,X-NuGet-ApiKey: {USER_API_KEY} |
API 金鑰是使用者從套件來源取得的不透明字串,並設定至用戶端。 未強制使用特定的字串格式,但 API 金鑰的長度不應超過 HTTP 標頭值的合理大小。
要求本文
要求本文必須採用下列形式:
多部分表單數據
要求標頭 Content-Type
是 multipart/form-data
,而且要求本文中的第一個專案是正在推送之 .nupkg 的原始位元組。 會忽略多部分主體中的後續專案。 會忽略檔名或任何其他多部分項目的標頭。
回應
狀態碼 | 意義 |
---|---|
201, 202 | 已成功推送套件 |
400 | 提供的套件無效 |
409 | 已存在具有所提供標識碼和版本的套件 |
成功推送封裝時,伺服器實作會因成功傳回的成功狀態代碼而有所不同。
刪除套件
nuget.org 會將套件刪除要求解譯為「取消清單」。 這表示套件仍可供套件的現有取用者使用,但套件不再出現在搜尋結果或 Web 介面中。 如需此做法的詳細資訊,請參閱 已刪除的套件 原則。 其他伺服器實作可以自由地將此訊號解譯為硬式刪除、虛刪除或取消清單。 例如, NuGet.Server (僅支援舊版 V2 API 的伺服器實作)支援根據組態選項將這項要求當作取消清單或硬式刪除來處理。
DELETE https://www.nuget.org/api/v2/package/{ID}/{VERSION}
要求參數
名稱 | 位於 | 類型 | 必要 | 備註 |
---|---|---|---|---|
識別碼 | URL | string | 是 | 要刪除之封裝的標識碼 |
VERSION | URL | string | 是 | 要刪除的套件版本 |
X-NuGet-ApiKey | 標頭 | string | 是 | 例如,X-NuGet-ApiKey: {USER_API_KEY} |
回應
狀態碼 | 意義 |
---|---|
204 | 套件已刪除 |
404 | 未提供 ID 且 VERSION 不存在的套件 |
重新列出套件
如果封裝未列出,可以使用「重新列出」端點,讓該套件在搜尋結果中再次顯示。 此端點與刪除 (unlist) 端點具有相同的形狀,但會使用 POST
HTTP 方法,而不是 DELETE
方法。
如果已列出套件,要求仍會成功。
POST https://www.nuget.org/api/v2/package/{ID}/{VERSION}
要求參數
名稱 | 位於 | 類型 | 必要 | 備註 |
---|---|---|---|---|
識別碼 | URL | string | 是 | 要重新列出的套件識別碼 |
VERSION | URL | string | 是 | 要重新列出的套件版本 |
X-NuGet-ApiKey | 標頭 | string | 是 | 例如,X-NuGet-ApiKey: {USER_API_KEY} |
回應
狀態碼 | 意義 |
---|---|
200 | 套件現已列出 |
404 | 未提供 ID 且 VERSION 不存在的套件 |