分享方式:


套件內容

您可以使用 V3 API 來產生 URL 來擷取任意套件的內容(.nupkg 檔案)。 用來擷取套件內容的資源是在PackageBaseAddress服務索引中找到的資源。 此資源也可讓您探索所有已列出或未列出的套件版本。

此資源通常稱為「套件基位址」或「一般容器」。

版本控制

使用下列 @type 值:

@type 值 備註
PackageBaseAddress/3.0.0 初始版本

基礎 URL

下列 API 的基底 URL 是 @id 與上述資源 @type 值相關聯的屬性值。 在下列檔中,將會使用佔位元基底 URL {@id} 。 基底 URL 可能會根據套件來源內的實作或基礎結構變更而變更,因此用戶端軟體必須以動態方式從 服務索引 擷取。

HTTP 方法

套件內容資源中找到的所有網址都支援 HTTP 方法與 GETHEAD

列舉套件版本

如果用戶端知道套件標識碼,而且想要探索套件來源可用的套件版本,用戶端可以建構可預測的 URL 來列舉所有套件版本。 此清單是以下所述的套件內容 API 的「目錄清單」。

注意

此清單同時包含已列出和未列出的套件版本。

GET {@id}/{LOWER_ID}/index.json

要求參數

名稱 位於 類型 必要 備註
LOWER_ID URL string 封裝標識碼,小寫

LOWER_ID 是使用 所實作規則所實作的所需套件標識碼小寫。NET 的 System.String.ToLowerInvariant() 方法。

回應

如果套件來源沒有提供的套件標識碼版本,則會傳回404狀態代碼。

如果套件來源有一或多個版本,則會傳回 200 狀態代碼。 回應主體是 JSON 物件,具有下列屬性:

名稱 類型​​ 必要 備註
versions 字串陣列 可用的版本

數位中的 versions 字串全都是小寫正規 化的 NuGet 版本字串。 版本字串不包含任何 SemVer 2.0.0 組建元數據。

意圖是,在此陣列中找到的版本字串可用於下列端點中找到的 LOWER_VERSION 令牌逐字顯示。

範例要求

GET https://api.nuget.org/v3-flatcontainer/owin/index.json

請務必從服務索引擷取基底 URL (https://api.nuget.org/v3-flatcontainer/在此範例中),如基底 URL 一節中所述

範例回應

{
  "versions": [
    "0.5.0",
    "0.7.0",
    "0.11.0",
    "0.12.0",
    "0.14.0",
    "1.0.0"
  ]
}

下載套件內容 (.nupkg)

如果用戶端知道套件識別碼和版本,而且想要下載套件內容,則只需要建構下列 URL:

GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.{LOWER_VERSION}.nupkg

要求參數

名稱 位於 類型 必要 備註
LOWER_ID URL string 套件標識碼,小寫
LOWER_VERSION URL string 套件版本、標準化和小寫

LOWER_VERSION 都是LOWER_ID使用 所實作的規則來小寫。NET 的System.String.ToLowerInvariant() 方法。

LOWER_VERSION是使用 NuGet 版本正規化規則正規化所需的套件版本。 這表示必須排除 SemVer 2.0.0 規格所允許的建置元數據。

回應本文

如果封裝存在於套件來源上,則會傳回 200 狀態代碼。 回應本文會是套件內容本身。

如果套件來源上沒有封裝,則會傳回 404 狀態代碼。

範例要求

GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/9.0.1/newtonsoft.json.9.0.1.nupkg

請務必從服務索引擷取基底 URL (https://api.nuget.org/v3-flatcontainer/在此範例中),如基底 URL 一節中所述

範例回應

Newtonsoft.Json 9.0.1 之 .nupkg 的二進位數據流。

下載套件指令清單 (.nuspec)

如果用戶端知道套件識別碼和版本,而且想要下載套件指令清單,則只需要建構下列 URL:

GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.nuspec

要求參數

名稱 位於 類型 必要 備註
LOWER_ID URL string 套件標識碼,小寫
LOWER_VERSION URL string 套件版本、標準化和小寫

LOWER_VERSION 都是LOWER_ID使用 所實作的規則來小寫。NET 的 System.String.ToLowerInvariant() 方法。

LOWER_VERSION是使用 NuGet 版本正規化規則正規化所需的套件版本。 這表示必須排除 SemVer 2.0.0 規格所允許的建置元數據。

回應本文

如果封裝存在於套件來源上,則會傳回 200 狀態代碼。 響應主體會是套件指令清單,也就是對應 .nupkg 中包含的 .nuspec。 .nuspec 是 XML 檔。

如果套件來源上沒有封裝,則會傳回 404 狀態代碼。

範例要求

GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/6.0.4/newtonsoft.json.nuspec

請務必從服務索引擷取基底 URL (https://api.nuget.org/v3-flatcontainer/在此範例中),如基底 URL 一節中所述

範例回應

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>Newtonsoft.Json</id>
    <version>6.0.4</version>
    <title>Json.NET</title>
    <authors>James Newton-King</authors>
    <owners>James Newton-King</owners>
    <licenseUrl>https://raw.github.com/JamesNK/Newtonsoft.Json/master/LICENSE.md</licenseUrl>
    <projectUrl>http://james.newtonking.com/json</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Json.NET is a popular high-performance JSON framework for .NET</description>
    <language>en-US</language>
    <tags>json</tags>
  </metadata>
</package>