#api #get #request #nuget
#API #получает #запрос #nuget
Вопрос:
Я пытаюсь получить самую новую версию из пакета (в моем случае я пытаюсь использовать пакет StyleCopAnalyzerhttps://www.nuget.org/packages/StyleCop .Анализаторы).
Моя цель — выяснить, какая самая новая версия этого пакета, я пытаюсь это сделать с помощью следующего вызова get api:
https://api.nuget.org/v3/registration3/StyleCop .Анализаторы/index.json
Из-за некоторых ошибок в запросе я получаю этот json обратно:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Error>
<Code>BlobNotFound</Code>
<Message>The specified blob does not exist. RequestId:c2c2ffba-701e-0063-0daa-e47670000000 Time:2019-03-27T14:38:14.3708948Z</Message>
</Error>
Я создал этот запрос с помощью этого документа:
https://learn.microsoft.com/en-us/nuget/api/overview
Заранее спасибо, что помогли мне.
Ответ №1:
Развивая ответ @ zivkan
, я нашел этот пост полезным для фонового контекста.
Особо следует отметить, что разработчики сервера NuGet объявляют, что они будут добавлять поддержку пакетов «semver 2.0» через эту конечную точку:
Сегодня в api / v3 /index.json видны два улья регистрации:
Мы добавим третий:
Что не было очевидным для меня в документах, так это то, что semver2
конечная точка возвращает метаданные также для пакетов, отличных от semver 2 (после размышления это имеет смысл, поскольку любой пакет, следующий соглашениям semver 1.0, совместим с semver 2.0)
Я обновил свой код, чтобы больше не использовать его https://api.nuget.org/v3/registration3/
ни в каком контексте и всегда использовать https://api.nuget.org/v3/registration5-gz-semver2
.
Это изменение упрощает мой код проверки, включает в себя пакет, который я искал (а также 121 других).
Peter K
пакет может быть разрешен с помощью:
https://api.nuget.org/v3/registration5-gz-semver2/stylecop.analyzers/index.json
Ответ №2:
Указанный вами URL-адрес задокументирован на странице метаданных пакета. Часть, в которой говорится о формате URL, имеет следующее:
ПОЛУЧАЕМ {@id}/{LOWER_ID}/index.json
Имя в типе Обязательные примечания
Строка URL-адреса LOWER_ID да, идентификатор пакета в нижнем регистре
Значение LOWER_ID — это желаемый идентификатор пакета, приведенный в нижнем регистре с использованием правил, реализованных .Система NET.Строка.метод ToLowerInvariant().
В другом месте страницы, где есть примеры URL-адресов, вы также можете увидеть, что идентификатор пакета указан в нижнем регистре.
Кроме того, в верхней части страницы есть небольшая таблица об управлении версиями. Как говорится в документах, использование базы регистрации v3.0.0 или v3.4.0 не вернет вам пакеты, использующие строку версии SemVer2. Поэтому, если вы хотите избежать пропуска версий пакета, вы должны получить RegistrationsBaseUrl/3.6.0
и идентификатор пакета в нижнем регистре:
https://api.nuget.org/v3/registration3-gz-semver2/stylecop.analyzers/index.json