自動完成

您可以使用 V3 API 來建置套件識別碼和版本自動完成體驗。 用來進行自動完成查詢的資源是在SearchAutocompleteService服務索引中找到的資源。

版本控制

使用下列 @type 值:

@type 值 備註
SearchAutocompleteService 初始版本
SearchAutocompleteService/3.0.0-beta 的別名 SearchAutocompleteService
SearchAutocompleteService/3.0.0-rc 的別名 SearchAutocompleteService
SearchAutocompleteService/3.5.0 包含查詢參數的支援packageType

SearchAutocompleteService/3.5.0

此版本引進查詢參數的支援 packageType ,允許作者定義的封裝類型進行篩選。 它與 查詢完全回溯相容。SearchAutocompleteService

基礎 URL

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

HTTP 方法

註冊資源中找到的所有 URL 都支援 HTTP 方法和 GETHEAD

搜尋套件識別碼

第一個自動完成 API 支援搜尋套件識別符字串的一部分。 當您想要在與 NuGet 套件來源整合的使用者介面中提供套件 typeahead 功能時,這很好。

只有未列出版本的套件不會出現在結果中。

GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}

要求參數

名稱 位於 類型 必要 備註
q URL string 要與套件識別碼比較的字串
skip URL 整數 要略過的分頁結果數目
take URL 整數 要傳回的結果數目,用於分頁
發行前版本 URL boolean truefalse 判斷是否要包含 發行前版本套件
semVerLevel URL string SemVer 1.0.0 版本字串
PackageType URL string 用來篩選封裝的封裝類型(已新增至 SearchAutocompleteService/3.5.0中)

自動完成查詢 q 會以伺服器實作所定義的方式進行剖析。 nuget.org 支援查詢套件標識符令牌的前置詞,這是分割原始的駱駝大小寫和符號字元所產生的標識符片段。

參數 skip 預設為 0。

參數 take 應該是大於零的整數。 伺服器實作可能會施加最大值。

如果未 prerelease 提供,則會排除發行前版本套件。

查詢 semVerLevel 參數是用來選擇加入 SemVer 2.0.0 套件。 如果排除此查詢參數,則只會傳回具有 SemVer 1.0.0 相容版本的套件識別碼(使用 標準 NuGet 版本控制 注意事項,例如具有 4 個整數片段的版本字串)。 如果 semVerLevel=2.0.0 提供 ,則會傳回 SemVer 1.0.0 和 SemVer 2.0.0 相容套件。 如需詳細資訊,請參閱 SemVer 2.0.0 支援 nuget.org

packageType參數可用來進一步篩選自動完成結果,只篩選至少一個符合封裝類型名稱的封裝類型。 如果提供的套件類型不是封裝類型檔定義的有效封裝類型,則會傳回空的結果。 如果提供的套件類型是空的,則不會套用任何篩選。 換句話說,不傳遞任何值給 packageType 參數的行為會如同未傳遞參數一樣。

回應

回應是包含最多 take 自動完成結果的 JSON 檔。

根 JSON 物件具有下列屬性:

名稱 類型​​ 必要 備註
totalHits 整數 相符項目總數,忽略 skiptake
資料 字串陣列 要求相符的套件識別碼

範例要求

GET https://search-sample.nuget.org/autocomplete?q=storage&prerelease=true

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

範例回應

{
  "totalHits": 571,
  "data": [
    "WindowsAzure.Storage",
    "Storage.Net",
    "CK.Storage",
    "NCL.Storage",
    "DK.Storage",
    "Nine.Storage.Test",
    "Touch.Storage.Aws",
    "StorageAPIClient",
    "StorageAccess",
    "Storage.Net.Microsoft.Azure.Storage",
    "UnofficialAzure.StorageClient",
    "StorageAccess12",
    "AWSSDK.StorageGateway",
    "StorageExtensions",
    "Cloud.Storage",
    "lighthouse.storage",
    "ZU.Storage.Redis",
    "Magicodes.Storage",
    "Masticore.Storage",
    "hq.storage"
  ]
}

列舉套件版本

使用先前的 API 探索套件識別碼之後,用戶端就可以使用自動完成 API 來列舉所提供套件識別碼的套件版本。

未列出的套件版本不會出現在結果中。

GET {@id}?id={ID}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}

要求參數

名稱 位於 類型 必要 備註
id URL string 要擷取版本的套件標識碼
發行前版本 URL boolean truefalse 判斷是否要包含 發行前版本套件
semVerLevel URL string SemVer 2.0.0 版本字串

如果未 prerelease 提供,則會排除發行前版本套件。

查詢 semVerLevel 參數是用來選擇加入 SemVer 2.0.0 套件。 如果排除此查詢參數,則只會傳回 SemVer 1.0.0 版本。 如果 semVerLevel=2.0.0 提供 ,則會傳回 SemVer 1.0.0 和 SemVer 2.0.0 版本。 如需詳細資訊,請參閱 SemVer 2.0.0 支援 nuget.org

回應

回應是 JSON 檔,其中包含所提供套件識別碼的所有套件版本,並依指定的查詢參數進行篩選。

根 JSON 物件具有下列屬性:

名稱 類型​​ 必要 備註
資料 字串陣列 要求所比對的套件版本

如果 查詢字串中提供 ,數位列中的data套件版本可能包含 SemVer 2.0.0 組建元資料(例如 1.0.0+metadata)。semVerLevel=2.0.0

範例要求

GET https://api-v2v3search-0.nuget.org/autocomplete?id=nuget.protocol&prerelease=true

範例回應

{
  "data": [
    "4.3.0-preview3-4168",
    "4.3.0-preview4",
    "4.3.0-rtm-4324",
    "4.3.0",
    "4.4.0-preview3-4475",
    "4.4.0"
  ]
}