2016-01-23 4 views
8

Мне интересно писать клиентскую библиотеку вокруг API NuGet v3 на языке, отличном от .NET. Где я могу найти документацию/ресурсы на нем, которые скажут мне, например. какие URL-адреса должны обрабатывать запросы и какие ответы они будут возвращать?Где я могу найти документацию для API NuGet v3?

Я попытался выполнить быстрый поиск Google, но единственное, что появляется, это this, которое было обновлено 3 года назад. Существует ли спецификация?

+0

Searching ссылки внеплощадочной явно не по теме, но когда вы найдете информацию рассмотреть вопрос об обновлении вик тега (http://stackoverflow.com/tags/nuget/info) –

+0

Очень вероятно, что ваша единственная надежда - это код C#, https://github.com/NuGet/NuGet.Client/tree/dev/src/NuGet.Core/NuGet.Protocol.Core.v3 –

+0

Вежливый запрос на документацию https://github.com/NuGet/Home/issues/4062 –

ответ

9

Here является официальной документацией NuGet V3 API. API состоит из нескольких протоколов, в том числе:

  1. Service Index - используется клиентом для обнаружения услуг NuGet
  2. Search Service - используется клиентами для поиска NuGet пакетов
  3. Registration - это JSON -LD, которая хранит метаданные пакетов. Это включает в себя содержимое пакетов, зависимости, описания и т. Д.
  4. "PackageBaseAddress" - Магазин, содержащий фактические пакеты и их файлы манифеста (nuspec).

Например, скажем, вы хотите загрузить пакет "Newtonsoft JSon.":

  1. Получить индекс службы: `ПОЛУЧИТЬ https://api.nuget.org/v3/index.json

ответ содержит адрес из PackageBaseAddress (иначе, как плоский контейнер, так как он является иерархическим и не плоским :)):

{ 
    "@id": "https://api.nuget.org/v3-flatcontainer/", 
    "@type": "PackageBaseAddress/3.0.0", 
    "comment": "Base URL of Azure storage where NuGet package registration info for DNX is stored, in the format https://api.nuget.org/v3-flatcontainer/{id-lower}/{version-lower}.{version-lower}.nupkg" 
}, 
  1. Используйте uri, предоставленный @id, в качестве базового uri для перечисления версий желаемого пакета: GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/index.json, обратите внимание, что этот uri может быть изменен и не является частью API
  2. Используйте тот же базовый URI для загрузки пакета: GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/6.0.4/newtonsoft.json.6.0.4.nupkg

Вы также можете захотеть взглянуть на NuGet client. Исходный код клиента: here; вам нужно начать с NuGet.CommandLine project и пройтись по стеку.

+0

Связанные с этим проблемы: https://github.com/NuGet/Home/issues/1870 –

+0

Удивительный, очень информативный. Спасибо за ваш ответ! –

3

Недавно официальная документация V3 была опубликована here

 Смежные вопросы

  • Нет связанных вопросов^_^