Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where can I find documentation for the NuGet v3 API? [closed]

Tags:

I'm interested in writing a client library around the NuGet v3 API in a non-.NET language. What is the URL to request to get a package, and what is the response going to be?

i.e.

GET {package-versions} GET {package-version}

Is there an official documentation to cover this scenario?

like image 713
James Ko Avatar asked Jan 23 '16 02:01

James Ko


People also ask

Where is my NuGet API key?

And the apikey is on your account of nuget.org website. Log on the website and click your account-->click on the Api Keys . So you can create the api keys for your own account.

Where can I find NuGet package source?

Find and install a packageIn Solution Explorer, right-click either References or a project and select Manage NuGet Packages.... The Browse tab displays packages by popularity from the currently selected source (see package sources). Search for a specific package using the search box on the upper left.

Is a NuGet package an api?

The NuGet Server API is a set of HTTP endpoints that can be used to download packages, fetch metadata, publish new packages, and perform most other operations available in the official NuGet clients. This API is used by the NuGet client in Visual Studio, nuget.exe, and the .

Is api NuGet.org down?

All systems are operational. Last checked in an hour.


1 Answers

Here is the official NuGet V3 API documentation. The API is composed of multiple protocols, including:

  1. The Service Index - used by the client to discover the NuGet services
  2. The Search Service - used by clients to search for NuGet packages
  3. The Registration - A json-LD based structure that stores the packages' metadata. This includes packages' content, dependencies, descriptions, etc...
  4. The "PackageBaseAddress" - The store that contains the actual packages and their manifest files (the nuspec).

For example, say you wanted to download the package "Newtonsoft. Json":

  1. Get the service index: `GET https://api.nuget.org/v3/index.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" }, 
  1. Use the uri provided by the @id as a base uri to list the versions of the desired package: 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 API
  2. Use the same base uri to download a package: GET 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.

like image 104
Yishai Galatzer Avatar answered Sep 26 '22 16:09

Yishai Galatzer