Udostępnij za pośrednictwem


Protokoły nuget.org

Aby korzystać z nuget.org, klienci muszą postępować zgodnie z pewnymi protokołami. Ponieważ te protokoły ciągle ewoluują, klienci muszą zidentyfikować wersję protokołu używaną podczas wywoływania określonych interfejsów API nuget.org. Dzięki temu nuget.org wprowadzać zmiany w sposób niełamiący się dla starych klientów.

Uwaga

Interfejsy API opisane na tej stronie są specyficzne dla nuget.org i nie ma oczekiwań dotyczących innych implementacji serwera NuGet w celu wprowadzenia tych interfejsów API.

Aby uzyskać informacje na temat interfejsu API NuGet zaimplementowanego szeroko w ekosystemie NuGet, zobacz omówienie interfejsu API.

W tym temacie wymieniono różne protokoły jako i w momencie ich istnienia.

Protokół NuGet w wersji 4.1.0

Protokół 4.1.0 określa użycie kluczy zakresu weryfikacji w celu interakcji z usługami innymi niż nuget.org, aby zweryfikować pakiet na koncie nuget.org. Należy pamiętać, że 4.1.0 numer wersji jest nieprzezroczystym ciągiem, ale występuje zbieganie się z pierwszą wersją oficjalnego klienta NuGet, który obsługiwał ten protokół.

Walidacja gwarantuje, że klucze interfejsu API utworzone przez użytkownika są używane tylko w przypadku nuget.org, a inne weryfikacje lub walidacja z usługi innej firmy są obsługiwane za pomocą jednorazowych kluczy weryfikowania zakresu. Te klucze weryfikowania zakresu mogą służyć do sprawdzania, czy pakiet należy do określonego użytkownika (konta) na nuget.org.

Wymaganie klienta

Klienci muszą przekazać następujący nagłówek podczas wykonywania wywołań interfejsu API w celu wypychania pakietów do nuget.org:

X-NuGet-Protocol-Version: 4.1.0

Należy pamiętać, że X-NuGet-Client-Version nagłówek ma podobną semantykę, ale jest zarezerwowany tylko do użycia przez oficjalnego klienta NuGet. Klienci innych firm powinni używać nagłówka X-NuGet-Protocol-Version i wartości.

Sam protokół wypychania jest opisany w dokumentacji zasobuPackagePublish.

Jeśli klient wchodzi w interakcję z usługami zewnętrznymi i musi sprawdzić, czy pakiet należy do określonego użytkownika (konta), powinien użyć następującego protokołu i użyć kluczy weryfikowania zakresu, a nie kluczy interfejsu API z nuget.org.

Interfejs API do żądania klucza weryfikowania zakresu

Ten interfejs API służy do uzyskiwania klucza weryfikowania zakresu dla autora nuget.org w celu zweryfikowania pakietu należącego do niego/jej.

POST api/v2/package/create-verification-key/{ID}/{VERSION}

Parametry żądania

Nazwisko W Typ Wymagania Uwagi
ID URL string tak Identyfikator pakietu, dla którego zażądano klucza zakresu weryfikacji
WERSJA URL string nie Wersja pakietu
X-NuGet-ApiKey Nagłówek string tak Na przykład X-NuGet-ApiKey: {USER_API_KEY}

Response

{
    "Key": "{Verify scope key from nuget.org}",
    "Expires": "{Date}"
}

Interfejs API do weryfikowania klucza zakresu

Ten interfejs API służy do weryfikowania klucza zakresu weryfikacji dla pakietu należącego do autora nuget.org.

GET api/v2/verifykey/{ID}/{VERSION}

Parametry żądania

Nazwisko W Typ Wymagania Uwagi
ID URL string tak Identyfikator pakietu, dla którego zażądano klucza zakresu weryfikacji
WERSJA URL string nie Wersja pakietu
X-NuGet-ApiKey Nagłówek string tak Na przykład X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

Uwaga

To sprawdzenie, czy klucz interfejsu API zakresu wygasa w ciągu dnia lub po raz pierwszy, w zależności od tego, co nastąpi wcześniej.

Response

Kod stanu Znaczenie
200 Klucz interfejsu API jest prawidłowy
403 Klucz interfejsu API jest nieprawidłowy lub nie ma autoryzacji do wypychania do pakietu
404 Pakiet, do których odwołuje się ID element i VERSION (opcjonalnie) nie istnieje