Принудительная отправка и удаление
Можно отправить, удалить (или отменить список в зависимости от реализации сервера) и перезаписать пакеты с помощью 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 существует |