Принудительная отправка и удаление

Можно отправить, удалить (или отменить список в зависимости от реализации сервера) и перезаписать пакеты с помощью API NuGet версии 3. Эти операции основаны на ресурсеPackagePublish, найденном в индексе службы.

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

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

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

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

Базовый URL-адрес для следующих API — это значение @id свойства PackagePublish/2.0.0 ресурса в индексе службы источника пакета. В документации ниже используется URL-адрес nuget.org. Рассмотрим https://www.nuget.org/api/v2/package как заполнитель для @id значения, найденного в индексе службы.

Обратите внимание, что этот URL-адрес указывает на то же расположение, что и конечная точка отправки версии 2, так как протокол совпадает.

Методы HTTP

Методы PUT, POST и DELETE HTTP поддерживаются этим ресурсом. Какие методы поддерживаются в каждой конечной точке, см. ниже.

Отправка пакета

Примечание.

nuget.org имеет дополнительные требования для взаимодействия с конечной точкой push-отправки.

nuget.org поддерживает отправку новых пакетов с помощью следующего API. Если пакет с указанным идентификатором и версией уже существует, nuget.org отклонит отправку. Другие источники пакетов могут поддерживать замену существующего пакета.

PUT https://www.nuget.org/api/v2/package

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

Имя. In Тип Обязательное поле Примечания.
X-NuGet-ApiKey Верхний колонтитул строка yes Например: X-NuGet-ApiKey: {USER_API_KEY}

Ключ API — это непрозрачная строка, полученная из источника пакета пользователем и настроенная в клиенте. Не требуется конкретный формат строки, но длина ключа API не должна превышать разумный размер для значений заголовков HTTP.

Текст запроса

Текст запроса должен находиться в следующей форме:

Составные данные форм

Заголовок Content-Type запроса — multipart/form-data это первый элемент в тексте запроса — необработанные байты отправляемого NUPKG. Последующие элементы в многопартийном тексте игнорируются. Имя файла или любые другие заголовки многопартийных элементов игнорируются.

Response

Код состояния Значение
201, 202 Пакет был успешно отправлен
400 Предоставленный пакет недопустим
409 Пакет с предоставленным идентификатором и версией уже существует

Реализации сервера зависят от кода состояния успешного выполнения, возвращаемого при успешном отправке пакета.

Удаление пакета

nuget.org интерпретирует запрос на удаление пакета как "неподписанный". Это означает, что пакет по-прежнему доступен для существующих потребителей пакета, но пакет больше не отображается в результатах поиска или в веб-интерфейсе. Дополнительные сведения об этой практике см. в политике удаленных пакетов . Другие реализации сервера могут интерпретировать этот сигнал как жесткое удаление, обратимое удаление или отмена списка. Например, NuGet.Server (реализация сервера, поддерживающая только старый API версии 2), поддерживает обработку этого запроса в виде списка или жесткого удаления на основе параметра конфигурации.

DELETE https://www.nuget.org/api/v2/package/{ID}/{VERSION}

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

Имя. In Тип Обязательное поле Примечания.
Идентификатор URL строка yes Идентификатор пакета для удаления
ВЕРСИЯ URL строка yes Версия пакета для удаления
X-NuGet-ApiKey Верхний колонтитул строка yes Например: X-NuGet-ApiKey: {USER_API_KEY}

Response

Код состояния Значение
204 Пакет был удален
404 Нет пакета с предоставленным ID и VERSION существует

Перезапись пакета

Если пакет не указан в списке, можно сделать этот пакет еще раз видимым в результатах поиска с помощью конечной точки повторного списка. Эта конечная точка имеет ту же форму, что и конечная точка удаления (отмена списка), но использует POST метод HTTP вместо DELETE метода.

Если пакет уже указан, запрос по-прежнему завершается успешно.

POST https://www.nuget.org/api/v2/package/{ID}/{VERSION}

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

Имя. In Тип Обязательное поле Примечания.
Идентификатор URL строка yes Идентификатор пакета для повторного списка
ВЕРСИЯ URL строка yes Версия пакета для повторного списка
X-NuGet-ApiKey Верхний колонтитул строка yes Например: X-NuGet-ApiKey: {USER_API_KEY}

Response

Код состояния Значение
200 Теперь пакет указан в списке
404 Нет пакета с предоставленным ID и VERSION существует