I'm interested in writing a client library around the NuGet v3 API in a non-.NET language. Where can I find documentation/resources on it that would tell me e.g. what URLs to make requests to and what responses it would return?
I tried doing a quick Google search, but the only thing that turns up is this, which was last updated 3 years ago. Does a spec exist?
Here is the official NuGet V3 API documentation. The API is composed of multiple protocols, including:
nuspec
).For example, say you wanted to download the package "Newtonsoft. Json":
The response contains the address of the PackageBaseAddress (aka, incorrectly as the flat container, as it is hierarchical and not flat :) ):
{
"@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"
},
GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/index.json
, note that this uri is subject to change and is not part of the APIGET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/6.0.4/newtonsoft.json.6.0.4.nupkg
You may also want to look at the NuGet client. The client's source code is here; you'll want to start from the NuGet.CommandLine project and walk your way down the stack.