Автозавершение
Можно создать идентификатор пакета и возможности автозавершения версий с помощью API версии 3. Ресурс, используемый для выполнения запросов автозавершения, — это ресурс 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-адрес
Базовый URL-адрес для следующих API-интерфейсов — это значение свойства @id
, связанного с одним из вышеупомянутых значений ресурса @type
. В следующем документе будет использоваться базовый URL-адрес заполнителя {@id}
. Базовый URL-адрес может изменяться на основе изменений в реализации или инфраструктуре в источнике пакета, поэтому он должен быть динамически получен из индекса службы клиентским программным обеспечением.
Методы HTTP
Все URL-адреса, содержащиеся в ресурсе регистрации, поддерживают методы HTTP GET
и HEAD
.
Поиск идентификаторов пакетов
Первый API автозавершения поддерживает поиск части строки идентификатора пакета. Это очень удобно, если нужно предоставить функцию автозавершения пакета в пользовательском интерфейсе, интегрированном с источником пакетов NuGet.
Пакет, содержащий только версии, которых нет в списке, не будет отображаться в результатах.
GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
Параметры запроса
Имя. | In | Тип | Обязательное поле | Примечания. |
---|---|---|---|---|
к | URL | строка | no | Строка для сравнения с идентификаторами пакета |
skip | URL | integer | no | Число пропускаемых результатов для разбивки на страницы |
take | URL | integer | no | Число возвращаемых результатов для разбивки на страницы |
Предварительный выпуск | URL | boolean | no | Значение true или false , определяющее, включать ли пакеты предварительного выпуска |
semVerLevel | URL | строка | no | Строка версии SemVer 1.0.0 |
packageType | URL | строка | no | Тип пакета, используемый для фильтрации пакетов (добавлен в SearchAutocompleteService/3.5.0 ) |
Запрос автозавершения q
анализируется способом, который определяет реализация сервера. nuget.org поддерживает запросы префикса токенов для идентификаторов пакетов. Эти префиксы токенов представляют собой фрагменты идентификатора, полученные путем разделения исходного значения с использованием "верблюжьего"стиля и символьных знаков.
Значение параметра skip
по умолчанию — 0.
Параметр take
должен быть целым числом больше нуля. Реализация сервера может требовать установки максимального значения.
Если значение prerelease
не указано, пакеты предварительного выпуска исключаются.
Параметр запроса semVerLevel
применяется для использования пакетов SemVer 2.0.0.
Если этот параметр запроса исключен, будут возвращены только идентификаторы пакетов с совместимыми версиями SemVer 1.0.0 (со стандартными предупреждениями управления версиями NuGet, такими как строки версий с четырьмя целочисленными компонентами).
Если указано значение semVerLevel=2.0.0
, будут возвращены совместимые пакеты SemVer 1.0.0 и SemVer 2.0.0. Дополнительные сведения см. в статье Поддержка SemVer 2.0.0 для nuget.org.
Параметр packageType
используется для дальнейшей фильтрации результатов автозавершения только в пакетах, по крайней мере один тип которых совпадает с именем типа пакета.
Если предоставленный тип пакета недопустим, как определено в документе "Тип пакета", будет возвращен пустой результат.
Если предоставлен пустой тип пакета, фильтр применяться не будет. Иными словами, передача значения в параметр packageType
будет выполняться так, как если бы параметр не был передан.
Response
Ответ — это документ JSON, содержащий до take
результатов автозавершения.
Корневой объект JSON имеет следующие свойства:
Имя. | Type | Обязательное поле | Примечания. |
---|---|---|---|
totalHits | integer | yes | Общее число совпадений, не учитывая skip и take |
. | массив строк | yes | Идентификаторы пакетов, сопоставленные по запросу |
Образец запроса
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}
Параметры запроса
Имя. | In | Тип | Обязательное поле | Примечания. |
---|---|---|---|---|
id | URL | строка | yes | Идентификатор пакета, для которого нужно извлечь сведения о версиях |
Предварительный выпуск | URL | boolean | no | Значение true или false , определяющее, включать ли пакеты предварительного выпуска |
semVerLevel | URL | строка | no | Строка версии 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.
Response
Ответ — это документ JSON, содержащий сведения обо всех версиях пакета по указанному идентификатору пакета с фильтрацией по заданным параметрам запроса.
Корневой объект JSON имеет следующее свойство:
Имя. | Type | Обязательное поле | Примечания. |
---|---|---|---|
. | массив строк | yes | Версии пакета, сопоставляемые с использованием запроса |
Версии пакета в массиве 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"
]
}