Metadane pakietu
Istnieje możliwość pobrania metadanych dotyczących pakietów dostępnych w źródle pakietu przy użyciu interfejsu API nuGet w wersji 3. Te metadane można pobrać przy użyciu zasobu znajdującego RegistrationsBaseUrl
się w indeksie usługi.
Kolekcja dokumentów znajdujących się w obszarze RegistrationsBaseUrl
jest często nazywana "rejestracjami" lub "rejestracjami obiektów blob". Zestaw dokumentów w ramach pojedynczego RegistrationsBaseUrl
elementu jest określany jako "gałąź rejestracji". Gałąź rejestracji zawiera metadane dotyczące każdego pakietu dostępnego w źródle pakietu.
Uwaga
Zasób metadanych pakietu nie zawiera wszystkich metadanych dla pakietów. Za pomocą zasobu wyszukiwania znajdź właścicieli pakietów, pliki do pobrania lub stan rezerwacji prefiksu.
Wersje
Używane są następujące @type
wartości:
@type Wartość | Uwagi |
---|---|
RejestracjeBaseUrl | Wersja początkowa |
RejestracjeBaseUrl/3.0.0-beta | Alias of RegistrationsBaseUrl |
RegistrationsBaseUrl/3.0.0-rc | Alias of RegistrationsBaseUrl |
RejestracjeBaseUrl/3.4.0 | Odpowiedzi Zmapowane |
RegistrationsBaseUrl/3.6.0 | Zawiera pakiety SemVer 2.0.0 |
Reprezentuje to trzy odrębne hive rejestracji dostępne dla różnych wersji klienta.
RejestracjeBaseUrl
Te rejestracje nie są kompresowane (co oznacza, że używają implikowanego Content-Encoding: identity
elementu ). Pakiety SemVer 2.0.0 są wykluczone z tego elementu hive.
RejestracjeBaseUrl/3.4.0
Te rejestracje są kompresowane przy użyciu polecenia Content-Encoding: gzip
. Pakiety SemVer 2.0.0 są wykluczone z tego elementu hive.
RegistrationsBaseUrl/3.6.0
Te rejestracje są kompresowane przy użyciu polecenia Content-Encoding: gzip
. Pakiety SemVer 2.0.0 są zawarte w tym hive.
Aby uzyskać więcej informacji na temat programu SemVer 2.0.0, zobacz Obsługa protokołu SemVer 2.0.0 dla nuget.org.
Podstawowy adres URL
Podstawowym adresem URL dla następujących interfejsów API jest wartość @id
właściwości skojarzonej z wyżej wymienionymi wartościami zasobów @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 rejestracji obsługują metody GET
HTTP i HEAD
.
Indeks rejestracji
Metadane pakietu grup zasobów rejestracji według identyfikatora pakietu. Nie można jednocześnie pobierać danych o więcej niż jednym identyfikatorze pakietu. Ten zasób nie umożliwia odnajdywania identyfikatorów pakietów. Zamiast tego zakłada się, że klient zna już żądany identyfikator pakietu. Dostępne metadane dotyczące każdej wersji pakietu różnią się w zależności od implementacji serwera. Obiekty blob rejestracji pakietu mają następującą strukturę hierarchiczną:
- Indeks: punkt wejścia metadanych pakietu, współużytkowany przez wszystkie pakiety w źródle o tym samym identyfikatorze pakietu.
- Strona: grupowanie wersji pakietów. Liczba wersji pakietów na stronie jest definiowana przez implementację serwera.
- Liść: dokument specyficzny dla pojedynczej wersji pakietu.
Adres URL indeksu rejestracji jest przewidywalny i może być określany przez klienta przy użyciu identyfikatora pakietu i wartości zasobu @id
rejestracji z indeksu usługi. Adresy URL stron rejestracji i liści są odnajdywane przez sprawdzenie indeksu rejestracji.
Strony rejestracji i liście
Chociaż implementacja serwera nie jest ściśle wymagana do przechowywania liści rejestracji w oddzielnych dokumentach strony rejestracji, zaleca się oszczędzanie pamięci po stronie klienta. Zamiast oznaczać wszystkie liście rejestracji w indeksie lub natychmiast przechowywać liście w dokumentach strony, zaleca się, aby implementacja serwera zdefiniować niektóre heurystyczne do wyboru między dwoma podejściami na podstawie liczby wersji pakietu lub skumulowanego rozmiaru liści pakietu.
Przechowywanie wszystkich wersji pakietu (liście) w indeksie rejestracji zapisuje liczbę żądań HTTP niezbędnych do pobrania metadanych pakietu, ale oznacza, że należy pobrać większy dokument i przydzielić więcej pamięci klienta. Z drugiej strony, jeśli implementacja serwera natychmiast przechowuje rejestrację w oddzielnych dokumentach strony, klient musi wykonać więcej żądań HTTP, aby uzyskać potrzebne informacje.
Heurystyka używana przez nuget.org jest następująca: jeśli istnieje 128 lub więcej wersji pakietu, podziel liście na strony o rozmiarze 64. Jeśli istnieje mniej niż 128 wersji, wszystkie liście wbudowane do indeksu rejestracji. Należy pamiętać, że oznacza to, że pakiety z wersjami od 65 do 127 będą miały dwie strony w indeksie, ale obie strony zostaną podkreślone.
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
Odpowiedź to dokument JSON, który ma obiekt główny o następujących właściwościach:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
count | integer | tak | Liczba stron rejestracji w indeksie |
elementy | tablica obiektów | tak | Tablica stron rejestracji |
Każdy element w tablicy obiektu indeksu items
jest obiektem JSON reprezentującym stronę rejestracji.
Obiekt strony rejestracji
Obiekt strony rejestracji znajdujący się w indeksie rejestracji ma następujące właściwości:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
@id | string | tak | Adres URL strony rejestracji |
count | integer | tak | Liczba pozostawień rejestracji na stronie |
elementy | tablica obiektów | nie | Tablica liści rejestracji i ich metadanych skojarzonych |
Niższe | string | tak | Najniższa wersja SemVer 2.0.0 na stronie (włącznie) |
parent | string | nie | Adres URL indeksu rejestracji |
Górnej | string | tak | Najwyższa wersja SemVer 2.0.0 na stronie (włącznie) |
Granice lower
obiektu strony i upper
są przydatne, gdy potrzebne są metadane dla określonej wersji strony.
Te granice mogą służyć do pobierania tylko wymaganej strony rejestracji. Ciągi wersji są zgodne z regułami wersji pakietu NuGet. Ciągi wersji są znormalizowane i nie zawierają metadanych kompilacji. Podobnie jak w przypadku wszystkich wersji w ekosystemie NuGet, porównanie ciągów wersji jest implementowane przy użyciu reguł pierwszeństwa wersji SemVer 2.0.0.
Właściwość będzie wyświetlana parent
tylko wtedy, gdy obiekt strony rejestracji ma items
właściwość .
items
Jeśli właściwość nie istnieje w obiekcie strony rejestracji, adres URL określony w elemecie @id
musi służyć do pobierania metadanych dotyczących poszczególnych wersji pakietu. Tablica items
jest czasami wykluczana z obiektu strony jako optymalizacji. Jeśli liczba wersji pojedynczego identyfikatora pakietu jest bardzo duża, dokument indeksu rejestracji będzie ogromny i marnotrawny do przetworzenia dla klienta, który dba tylko o określoną wersję lub mały zakres wersji.
Należy pamiętać, że jeśli items
właściwość jest obecna, @id
właściwość nie musi być używana, ponieważ wszystkie dane strony są już wbudowane we items
właściwości .
Każdy element w tablicy items
obiektu strony jest obiektem JSON reprezentującym liść rejestracji i skojarzonymi metadanymi.
Obiekt liścia rejestracji na stronie
Obiekt liścia rejestracji znajdujący się na stronie rejestracji ma następujące właściwości:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
@id | string | tak | Adres URL liścia rejestracji |
catalogEntry | obiekt | tak | Wpis wykazu zawierający metadane pakietu |
packageContent | string | tak | Adres URL zawartości pakietu (nupkg) |
Każdy obiekt liścia rejestracji reprezentuje dane skojarzone z jedną wersją pakietu.
Wpis wykazu
Właściwość catalogEntry
w obiekcie liścia rejestracji ma następujące właściwości:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
@id | string | tak | Adres URL dokumentu użytego do utworzenia tego obiektu |
Autorów | ciąg lub tablica ciągów | nie | |
dependencyGroups | tablica obiektów | nie | Zależności pakietu pogrupowane według platformy docelowej |
Oczekiwany | obiekt | nie | Wycofanie skojarzone z pakietem |
opis | string | nie | |
iconUrl | string | nie | |
identyfikator | string | tak | Identyfikator pakietu |
język | string | nie | |
licenseUrl | string | nie | |
licenseExpression | string | nie | |
wymienione | boolean | nie | Należy uznać za wymienione, jeśli nie ma |
minClientVersion | string | nie | |
packageContent | string | nie | Duplikat tej samej właściwości w obiekcie nadrzędnym uwzględniony tylko ze starszych powodów |
projectUrl | string | nie | |
Opublikowane | string | nie | Ciąg zawierający sygnaturę czasową ISO 8601 w momencie opublikowania pakietu |
readmeUrl | string | nie | Adres URL renderowanego widoku (strony internetowej HTML) pakietu README |
requireLicenseAcceptance | boolean | nie | |
Podsumowanie | string | nie | |
tags | ciąg lub tablica ciągów | nie | |
title | string | nie | |
version | string | tak | Pełny ciąg wersji po normalizacji |
Luki | tablica obiektów | nie | Luki w zabezpieczeniach pakietu |
Właściwość pakietu version
jest pełnym ciągiem wersji po normalizacji. Oznacza to, że dane kompilacji SemVer 2.0.0 można uwzględnić tutaj.
Właściwość dependencyGroups
jest tablicą obiektów reprezentujących zależności pakietu pogrupowane według platformy docelowej. Jeśli pakiet nie ma zależności, dependencyGroups
brakuje właściwości, pustej tablicy lub dependencies
właściwości wszystkich grup jest pusta lub brakuje jej.
Wartość licenseExpression
właściwości jest zgodna ze składnią wyrażenia licencji NuGet.
Uwaga
W nuget.org wartość jest ustawiona na rok 1900, published
gdy pakiet nie jest wymieniony.
Grupa zależności pakietu
Każdy obiekt grupy zależności ma następujące właściwości:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
targetFramework | string | nie | Struktura docelowa, do których mają zastosowanie te zależności |
zależności | tablica obiektów | nie |
Ciąg targetFramework
używa formatu zaimplementowanego przez bibliotekę NuGet.Frameworks biblioteki nuGet.NET. Jeśli nie targetFramework
zostanie określony, grupa zależności ma zastosowanie do wszystkich platform docelowych.
Właściwość dependencies
jest tablicą obiektów, z których każda reprezentuje zależność pakietu bieżącego pakietu.
Zależność pakietu
Każda zależność pakietu ma następujące właściwości:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
identyfikator | string | tak | Identyfikator zależności pakietu |
range | obiekt | nie | Dozwolony zakres wersji zależności |
rejestracja | string | nie | Adres URL indeksu rejestracji dla tej zależności |
range
Jeśli właściwość jest wykluczona lub pusty ciąg, klient powinien domyślnie używać zakresu (, )
wersji . Oznacza to, że dowolna wersja zależności jest dozwolona. Wartość parametru *
jest niedozwolona range
dla właściwości .
Przestarzały pakiet
Każda wycofanie pakietu ma następujące właściwości:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
Powodów | tablica ciągów | tak | Przyczyny, dla których pakiet został przestarzały |
wiadomość | string | nie | Dodatkowe szczegóły dotyczące tego wycofania |
alternatePackage | obiekt | nie | Zamiast tego należy użyć alternatywnego pakietu |
Właściwość reasons
musi zawierać co najmniej jeden ciąg i powinna zawierać tylko ciągi z poniższej tabeli:
Przyczyna | opis |
---|---|
Starsza wersja | Pakiet nie jest już utrzymywany |
Krytycznebugs | Pakiet zawiera usterki, które sprawiają, że nie nadaje się do użycia |
Inne | Pakiet jest przestarzały z powodu przyczyny, dla którego nie ma na tej liście |
reasons
Jeśli właściwość zawiera ciągi, które nie pochodzą ze znanego zestawu, powinny być ignorowane. Ciągi są bez uwzględniania wielkości liter, więc legacy
powinny być traktowane tak samo jak Legacy
. W tablicy nie ma ograniczeń kolejności, więc ciągi mogą być rozmieszczone w dowolnej kolejności. Ponadto jeśli właściwość zawiera tylko ciągi, które nie pochodzą ze znanego zestawu, powinno być traktowane tak, jakby zawierała tylko ciąg "Inne".
Pakiet alternatywny
Obiekt pakietu alternatywnego ma następujące właściwości:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
identyfikator | string | tak | Identyfikator pakietu alternatywnego |
range | obiekt | nie | Dozwolony zakres wersji lub * dozwolona wersja |
Luki w zabezpieczeniach
Tablica vulnerability
obiektów. Każda luka w zabezpieczeniach ma następujące właściwości:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
advisoryUrl | string | tak | Lokalizacja porad dotyczących zabezpieczeń pakietu |
ważność | string | tak | Ważność porad: "0" = Niska, "1" = Umiarkowana, "2" = Wysoka, "3" = Krytyczne |
Przykładowe żądanie
GET https://api.nuget.org/v3/registration-sample/nuget.server.core/index.json
Pamiętaj, aby pobrać podstawowy adres URL (https://api.nuget.org/v3/registration-sample/
w tym przykładzie) z indeksu usługi, jak wspomniano w sekcji podstawowego adresu URL .
Przykładowa odpowiedź
{
"count": 1,
"items": [
{
"@id": "https://api.nuget.org/v3/registration-sample/nuget.server.core/index.json#page/3.0.0-beta/3.0.0-beta",
"count": 1,
"items": [
{
"@id": "https://api.nuget.org/v3/registration-sample/nuget.server.core/3.0.0-beta.json",
"catalogEntry": {
"@id": "https://api.nuget.org/v3/catalog0/data/2017.10.05.18.41.33/nuget.server.core.3.0.0-beta.json",
"authors": ".NET Foundation",
"dependencyGroups": [
{
"@id": "https://api.nuget.org/v3/catalog0/data/2017.10.05.18.41.33/nuget.server.core.3.0.0-beta.json#dependencygroup",
"dependencies": [
{
"@id": "https://api.nuget.org/v3/catalog0/data/2017.10.05.18.41.33/nuget.server.core.3.0.0-beta.json#dependencygroup/nuget.core",
"id": "NuGet.Core",
"range": "[2.14.0, )",
"registration": "https://api.nuget.org/v3/registration-sample/nuget.core/index.json"
}
]
}
],
"description": "Core library for creating a Web Application used to host a simple NuGet feed",
"iconUrl": "",
"id": "NuGet.Server.Core",
"language": "",
"licenseUrl": "https://raw.githubusercontent.com/NuGet/NuGet.Server/dev/LICENSE.txt",
"listed": true,
"minClientVersion": "2.6",
"packageContent": "https://api.nuget.org/v3-flatcontainer/nuget.server.core/3.0.0-beta/nuget.server.core.3.0.0-beta.nupkg",
"projectUrl": "https://github.com/NuGet/NuGet.Server",
"published": "2017-10-05T18:40:32.43+00:00",
"requireLicenseAcceptance": false,
"summary": "",
"tags": [ "" ],
"title": "",
"version": "3.0.0-beta",
"vulnerabilities": [
{
"advisoryUrl": "https://github.com/advisories/ABCD-1234-5678-9012",
"severity": "2"
}
]
},
"packageContent": "https://api.nuget.org/v3-flatcontainer/nuget.server.core/3.0.0-beta/nuget.server.core.3.0.0-beta.nupkg",
"registration": "https://api.nuget.org/v3/registration-sample/nuget.server.core/index.json"
}
],
"lower": "3.0.0-beta",
"upper": "3.0.0-beta"
}
]
}
W tym konkretnym przypadku indeks rejestracji zawiera stronę rejestracji, dlatego żadne dodatkowe żądania nie są potrzebne do pobierania metadanych dotyczących poszczególnych wersji pakietu.
Strona rejestracji
Strona rejestracji zawiera liście rejestracji. Adres URL pobierania strony rejestracji jest określany przez @id
właściwość obiektu strony rejestracji wymienionego powyżej. Adres URL nie jest przewidywalny i powinien być zawsze wykrywany za pomocą dokumentu indeksu.
Ostrzeżenie
W nuget.org adres URL dokumentu strony rejestracji przypadkowo zawiera dolną i górną granicę strony. Jednak to założenie nigdy nie powinno być podejmowane przez klienta, ponieważ implementacje serwera nie mogą zmieniać kształtu adresu URL, o ile dokument indeksu ma prawidłowy link.
Jeśli tablica items
nie jest podana w indeksie rejestracji, żądanie @id
HTTP GET wartości zwróci dokument JSON, który ma obiekt jako główny. Obiekt ma następujące właściwości:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
@id | string | tak | Adres URL strony rejestracji |
count | integer | tak | Liczba pozostawień rejestracji na stronie |
elementy | tablica obiektów | tak | Tablica liści rejestracji i ich metadanych skojarzonych |
Niższe | string | tak | Najniższa wersja SemVer 2.0.0 na stronie (włącznie) |
parent | string | tak | Adres URL indeksu rejestracji |
Górnej | string | tak | Najwyższa wersja SemVer 2.0.0 na stronie (włącznie) |
Kształt obiektów liścia rejestracji jest taki sam jak w powyższym indeksie rejestracji.
Przykładowe żądanie
GET https://api.nuget.org/v3/registration-sample/ravendb.client/page/1.0.531/1.0.729-unstable.json
Pamiętaj, aby pobrać podstawowy adres URL (https://api.nuget.org/v3/registration-sample/
w tym przykładzie) z indeksu usługi, jak wspomniano w sekcji podstawowego adresu URL .
Przykładowa odpowiedź
{
"count": 2,
"lower": "1.0.531",
"parent": "https://api.nuget.org/v3/registration-sample/nuget.protocol.v3.example/index.json",
"upper": "1.0.729-unstable",
"items": [
{
"@id": "https://api.nuget.org/v3/registration-sample/nuget.protocol.v3.example/1.0.531.json",
"@type": "Package",
"commitId": "e0b9ca79-75b5-414f-9e3e-de9534b5cfd1",
"commitTimeStamp": "2017-10-26T14:12:19.3439088Z",
"catalogEntry": {
"@id": "https://api.nuget.org/v3/catalog0/data/2015.02.01.11.38.37/nuget.protocol.v3.example.1.0.531.json",
"@type": "PackageDetails",
"authors": "NuGet.org Team",
"iconUrl": "https://www.nuget.org/Content/gallery/img/default-package-icon.svg",
"id": "NuGet.Protocol.V3.Example",
"licenseUrl": "http://www.opensource.org/licenses/ms-pl",
"listed": false,
"packageContent": "https://api.nuget.org/v3-flatcontainer/nuget.protocol.v3.example/1.0.531/nuget.protocol.v3.example.1.0.531.nupkg",
"projectUrl": "https://github.com/NuGet/NuGetGallery",
"published": "1900-01-01T00:00:00+00:00",
"requireLicenseAcceptance": true,
"title": "NuGet V3 Protocol Example",
"version": "1.0.531"
},
"packageContent": "https://api.nuget.org/v3-flatcontainer/nuget.protocol.v3.example/1.0.531/nuget.protocol.v3.example.1.0.531.nupkg",
"registration": "https://api.nuget.org/v3/registration-sample/nuget.protocol.v3.example/index.json"
},
{
"@id": "https://api.nuget.org/v3/registration-sample/nuget.protocol.v3.example/1.0.729-unstable.json",
"@type": "Package",
"commitId": "e0b9ca79-75b5-414f-9e3e-de9534b5cfd1",
"commitTimeStamp": "2017-10-26T14:12:19.3439088Z",
"catalogEntry": {
"@id": "https://api.nuget.org/v3/catalog0/data/2015.02.01.18.22.05/nuget.protocol.v3.example.1.0.729-unstable.json",
"@type": "PackageDetails",
"authors": "NuGet.org Team",
"deprecation": {
"reasons": [
"CriticalBugs"
],
"message": "This package is unstable and broken!",
"alternatePackage": {
"id": "Newtonsoft.JSON",
"range": "12.0.2"
}
},
"iconUrl": "https://www.nuget.org/Content/gallery/img/default-package-icon.svg",
"id": "NuGet.Protocol.V3.Example",
"licenseUrl": "http://www.opensource.org/licenses/ms-pl",
"listed": false,
"packageContent": "https://api.nuget.org/v3-flatcontainer/nuget.protocol.v3.example/1.0.729-unstable/nuget.protocol.v3.example.1.0.729-unstable.nupkg",
"projectUrl": "https://github.com/NuGet/NuGetGallery",
"published": "1900-01-01T00:00:00+00:00",
"requireLicenseAcceptance": true,
"summary": "This package is an example for the V3 protocol.",
"title": "NuGet V3 Protocol Example",
"version": "1.0.729-Unstable"
},
"packageContent": "https://api.nuget.org/v3-flatcontainer/nuget.protocol.v3.example/1.0.729-unstable/nuget.protocol.v3.example.1.0.729-unstable.nupkg",
"registration": "https://api.nuget.org/v3/registration-sample/nuget.protocol.v3.example/index.json"
}
]
}
Liść rejestracji
Liść rejestracji zawiera informacje o określonym identyfikatorze pakietu i wersji. Metadane dotyczące określonej wersji mogą nie być dostępne w tym dokumencie. Metadane pakietu należy pobrać z indeksu rejestracji lub strony rejestracji (która została odnaleziona przy użyciu indeksu rejestracji).
Adres URL pobierania liścia rejestracji jest uzyskiwany z @id
właściwości obiektu liścia rejestracji na stronie indeksu rejestracji lub rejestracji. Podobnie jak w przypadku dokumentu strony. adres URL nie jest przewidywalny i powinien być zawsze wykrywany za pomocą obiektu strony rejestracji.
Ostrzeżenie
W nuget.org adres URL dokumentu liścia rejestracji przypadkowo zawiera wersję pakietu. Jednak to założenie nigdy nie powinno być podejmowane przez klienta, ponieważ implementacje serwera nie mogą zmieniać kształtu adresu URL, o ile dokument nadrzędny ma prawidłowy link.
Liść rejestracji jest dokumentem JSON z obiektem głównym o następujących właściwościach:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
@id | string | tak | Adres URL liścia rejestracji |
catalogEntry | string | nie | Adres URL wpisu wykazu, który wygenerował ten liść |
wymienione | boolean | nie | Należy uznać za wymienione, jeśli nie ma |
packageContent | string | nie | Adres URL zawartości pakietu (nupkg) |
Opublikowane | string | nie | Ciąg zawierający sygnaturę czasową ISO 8601 w momencie opublikowania pakietu |
rejestracja | string | nie | Adres URL indeksu rejestracji |
Uwaga
W nuget.org wartość jest ustawiona na rok 1900, published
gdy pakiet nie jest wymieniony.
Przykładowe żądanie
GET https://api.nuget.org/v3/registration-sample/nuget.versioning/4.3.0.json
Pamiętaj, aby pobrać podstawowy adres URL (https://api.nuget.org/v3/registration-sample/
w tym przykładzie) z indeksu usługi, jak wspomniano w sekcji podstawowego adresu URL .
Przykładowa odpowiedź
{
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/4.3.0.json",
"catalogEntry": "https://api.nuget.org/v3/catalog0/data/2017.08.11.18.24.22/nuget.versioning.4.3.0.json",
"listed": true,
"packageContent": "https://api.nuget.org/v3-flatcontainer/nuget.versioning/4.3.0/nuget.versioning.4.3.0.nupkg",
"published": "2017-08-11T18:24:14.36+00:00",
"registration": "https://api.nuget.org/v3/registration-sample/nuget.versioning/index.json"
}