Содержимое пакета
Можно создать 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>