Поделиться через


Содержимое пакета

Можно создать URL-адрес для получения содержимого произвольного пакета (nupkg-файла) с помощью API версии 3. Ресурс, используемый для получения содержимого пакета, является ресурсомPackageBaseAddress, найденным в индексе службы. Этот ресурс также включает обнаружение всех версий пакета, перечисленных или не перечисленных.

Этот ресурс обычно называется "базовым адресом пакета" или "неструктурированным контейнером".

Управление версиями

Используется следующее @type значение:

Значение @type Примечания.
PackageBaseAddress/3.0.0 Начальный выпуск

Базовый URL-адрес

Базовый URL-адрес для следующих API — это значение @id свойства, связанного с указанным выше упоминание значением ресурса@type. В следующем документе будет использоваться базовый URL-адрес заполнителя {@id}. Базовый URL-адрес может изменяться на основе изменений в реализации или инфраструктуре в источнике пакета, поэтому он должен быть динамически получен из индекса службы клиентским программным обеспечением.

Методы HTTP

Все URL-адреса, найденные в ресурсе содержимого пакета, поддерживают методы GET HTTP и HEAD.

Перечисление версий пакета

Если клиент знает идентификатор пакета и хочет обнаружить доступные версии пакета, клиент может создать прогнозируемый URL-адрес для перечисления всех версий пакета. Этот список должен быть "списком каталогов" для API содержимого пакета, упоминание приведен ниже.

Примечание.

Этот список содержит как перечисленные, так и не перечисленные версии пакетов.

GET {@id}/{LOWER_ID}/index.json

Параметры запроса

Имя. In Тип Обязательное поле Примечания.
LOWER_ID URL строка yes Идентификатор пакета, нижний регистр

Значение LOWER_ID — это требуемый идентификатор пакета, нижний регистр с помощью правил, реализованных в . System.String.ToLowerInvariant() Метод NET.

Response

Если источник пакета не имеет версий предоставленного идентификатора пакета, возвращается код состояния 404.

Если источник пакета имеет одну или несколько версий, возвращается код состояния 200. Текст ответа — это объект JSON со следующим свойством:

Имя. Type Обязательное поле Примечания.
версии массив строк yes Доступные версии

Строки в массиве 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

Параметры запроса

Имя. In Тип Обязательное поле Примечания.
LOWER_ID URL строка yes Идентификатор пакета, строчные регистры
LOWER_VERSION URL строка yes Версия пакета, нормализованная и строчная

Оба LOWER_ID и LOWER_VERSION строчные регистры используют правила, реализованные с помощью . 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-адреса.

Пример ответа

Двоичный поток, представляющий собой Nupkg для Newtonsoft.Json 9.0.1.

Скачивание манифеста пакета (.nuspec)

Если клиент знает идентификатор пакета и версию и хочет скачать манифест пакета, он должен создать только следующий URL-адрес:

GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.nuspec

Параметры запроса

Имя. In Тип Обязательное поле Примечания.
LOWER_ID URL строка yes Идентификатор пакета, строчные регистры
LOWER_VERSION URL строка yes Версия пакета, нормализованная и строчная

Оба LOWER_ID и LOWER_VERSION строчные регистры используют правила, реализованные с помощью . System.String.ToLowerInvariant() Метод NET.

Это LOWER_VERSION требуемая версия пакета нормализована с помощью правил нормализации версий NuGet. Это означает, что в данном случае необходимо исключить метаданные сборки, разрешенные спецификацией SemVer 2.0.0.

Текст ответа

Если пакет существует в источнике пакета, возвращается код состояния 200. Текст ответа будет манифестом пакета, который является nuspec, содержащимся в соответствующем NUPKG. 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>