Udostępnij za pośrednictwem


Zawartość pakietu

Istnieje możliwość wygenerowania adresu URL w celu pobrania zawartości dowolnego pakietu (pliku nupkg) przy użyciu interfejsu API w wersji 3. Zasób używany do pobierania zawartości pakietu to PackageBaseAddress zasób znaleziony w indeksie usługi. Ten zasób umożliwia również odnajdywanie wszystkich wersji pakietu, wymienionych lub nieznajdowanych na liście.

Ten zasób jest często określany jako "adres podstawowy pakietu" lub "płaski kontener".

Wersje

Używana jest następująca @type wartość:

@type Wartość Uwagi
PackageBaseAddress/3.0.0 Wersja początkowa

Podstawowy adres URL

Podstawowy adres URL dla następujących interfejsów API to wartość @id właściwości skojarzonej z wyżej wymienioną wartością zasobu @type . W poniższym dokumencie zostanie użyty podstawowy adres URL {@id} symbolu zastępczego. Podstawowy adres URL może ulec zmianie na podstawie implementacji lub zmian infrastruktury w źródle pakietu, dlatego musi być dynamicznie pobierany z indeksu usługi przez oprogramowanie klienckie.

Metody HTTP

Wszystkie adresy URL znalezione w zasobie zawartości pakietu obsługują metody GET HTTP i HEAD.

Wyliczanie wersji pakietów

Jeśli klient zna identyfikator pakietu i chce wykryć, które wersje pakietu ma dostępne źródło pakietu, klient może utworzyć przewidywalny adres URL w celu wyliczenia wszystkich wersji pakietów. Ta lista ma być "listą katalogów" dla interfejsu API zawartości pakietu wymienionego poniżej.

Uwaga

Ta lista zawiera zarówno wymienione, jak i nieznajdowane wersje pakietów.

GET {@id}/{LOWER_ID}/index.json

Parametry żądania

Nazwisko W Typ Wymagania Uwagi
LOWER_ID URL string tak Identyfikator pakietu, małe litery

Wartość LOWER_ID jest identyfikatorem żądanego pakietu małymi literami przy użyciu reguł implementowanych przez program . Metoda platformy System.String.ToLowerInvariant() NET.

Response

Jeśli źródło pakietu nie ma wersji podanego identyfikatora pakietu, zwracany jest kod stanu 404.

Jeśli źródło pakietu ma co najmniej jedną wersję, zwracany jest kod stanu 200. Treść odpowiedzi jest obiektem JSON z następującą właściwością:

Nazwisko Type Wymagania Uwagi
versions tablica ciągów tak Dostępne wersje

Ciągi w tablicy versions są małymi literami, znormalizowanymi ciągami wersji NuGet. Ciągi wersji nie zawierają żadnych metadanych kompilacji SemVer 2.0.0.

Intencją jest to, że ciągi wersji znalezione w tej tablicy mogą być używane dosłownie dla LOWER_VERSION tokenów znajdujących się w następujących punktach końcowych.

Przykładowe żądanie

GET https://api.nuget.org/v3-flatcontainer/owin/index.json

Pamiętaj, aby pobrać podstawowy adres URL (https://api.nuget.org/v3-flatcontainer/ w tym przykładzie) z indeksu usługi, jak wspomniano w sekcji podstawowego adresu URL .

Przykładowa odpowiedź

{
  "versions": [
    "0.5.0",
    "0.7.0",
    "0.11.0",
    "0.12.0",
    "0.14.0",
    "1.0.0"
  ]
}

Pobieranie zawartości pakietu (nupkg)

Jeśli klient zna identyfikator pakietu i wersję i chce pobrać zawartość pakietu, musi utworzyć tylko następujący adres URL:

GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.{LOWER_VERSION}.nupkg

Parametry żądania

Nazwisko W Typ Wymagania Uwagi
LOWER_ID URL string tak Identyfikator pakietu, małe litery
LOWER_VERSION URL string tak Wersja pakietu, znormalizowane i małe litery

Obie LOWER_ID i LOWER_VERSION są małe litery przy użyciu reguł implementowanych przez program . Net System.String.ToLowerInvariant() Metoda.

Jest LOWER_VERSION to żądana wersja pakietu znormalizowana przy użyciu reguł normalizacji wersji NuGet. Oznacza to, że w tym przypadku należy wykluczyć metadane kompilacji dozwolone przez specyfikację SemVer 2.0.0.

Treść odpowiedzi

Jeśli pakiet istnieje w źródle pakietu, zostanie zwrócony kod stanu 200. Treść odpowiedzi będzie zawartością pakietu.

Jeśli pakiet nie istnieje w źródle pakietu, zostanie zwrócony kod stanu 404.

Przykładowe żądanie

GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/9.0.1/newtonsoft.json.9.0.1.nupkg

Pamiętaj, aby pobrać podstawowy adres URL (https://api.nuget.org/v3-flatcontainer/ w tym przykładzie) z indeksu usługi, jak wspomniano w sekcji podstawowego adresu URL .

Przykładowa odpowiedź

Strumień binarny, który jest nupkg dla newtonsoft.Json 9.0.1.

Pobieranie manifestu pakietu (.nuspec)

Jeśli klient zna identyfikator pakietu i wersję i chce pobrać manifest pakietu, musi utworzyć tylko następujący adres URL:

GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.nuspec

Parametry żądania

Nazwisko W Typ Wymagania Uwagi
LOWER_ID URL string tak Identyfikator pakietu, małe litery
LOWER_VERSION URL string tak Wersja pakietu, znormalizowane i małe litery

Obie LOWER_ID i LOWER_VERSION są małe litery przy użyciu reguł implementowanych przez program . Metoda platformy System.String.ToLowerInvariant() NET.

Jest LOWER_VERSION to żądana wersja pakietu znormalizowana przy użyciu reguł normalizacji wersji NuGet. Oznacza to, że w tym przypadku należy wykluczyć metadane kompilacji dozwolone przez specyfikację SemVer 2.0.0.

Treść odpowiedzi

Jeśli pakiet istnieje w źródle pakietu, zostanie zwrócony kod stanu 200. Treść odpowiedzi będzie manifestem pakietu, który jest plikiem nuspec zawartym w odpowiadającym mu elembcie nupkg. Plik nuspec jest dokumentem XML.

Jeśli pakiet nie istnieje w źródle pakietu, zostanie zwrócony kod stanu 404.

Przykładowe żądanie

GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/6.0.4/newtonsoft.json.nuspec

Pamiętaj, aby pobrać podstawowy adres URL (https://api.nuget.org/v3-flatcontainer/ w tym przykładzie) z indeksu usługi, jak wspomniano w sekcji podstawowego adresu URL .

Przykładowa odpowiedź

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>Newtonsoft.Json</id>
    <version>6.0.4</version>
    <title>Json.NET</title>
    <authors>James Newton-King</authors>
    <owners>James Newton-King</owners>
    <licenseUrl>https://raw.github.com/JamesNK/Newtonsoft.Json/master/LICENSE.md</licenseUrl>
    <projectUrl>http://james.newtonking.com/json</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Json.NET is a popular high-performance JSON framework for .NET</description>
    <language>en-US</language>
    <tags>json</tags>
  </metadata>
</package>