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>