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ół 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.
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.
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}
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} |
{
"Key": "{Verify scope key from nuget.org}",
"Expires": "{Date}"
}
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}
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.
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 |