套件內容
您可以使用 V3 API 來產生 URL 來擷取任意套件的內容(.nupkg 檔案)。 用來擷取套件內容的資源是在PackageBaseAddress
服務索引中找到的資源。 此資源也可讓您探索所有已列出或未列出的套件版本。
此資源通常稱為「套件基位址」或「一般容器」。
版本控制
使用下列 @type
值:
@type 值 | 備註 |
---|---|
PackageBaseAddress/3.0.0 | 初始版本 |
基礎 URL
下列 API 的基底 URL 是 @id
與上述資源 @type
值相關聯的屬性值。 在下列檔中,將會使用佔位元基底 URL {@id}
。 基底 URL 可能會根據套件來源內的實作或基礎結構變更而變更,因此用戶端軟體必須以動態方式從 服務索引 擷取。
HTTP 方法
套件內容資源中找到的所有網址都支援 HTTP 方法與 GET
HEAD
。
列舉套件版本
如果用戶端知道套件標識碼,而且想要探索套件來源可用的套件版本,用戶端可以建構可預測的 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>