Автозавершение

Можно создать идентификатор пакета и возможности автозавершения версий с помощью 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"
  ]
}