自動完成
您可以使用 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 方法和 GET
HEAD
。
搜尋套件識別碼
第一個自動完成 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 | 否 | true 或 false 判斷是否要包含 發行前版本套件 |
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 | 整數 | 是 | 相符項目總數,忽略 skip 和 take |
資料 | 字串陣列 | 是 | 要求相符的套件識別碼 |
範例要求
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 | 否 | true 或 false 判斷是否要包含 發行前版本套件 |
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"
]
}