Udostępnij za pomocą


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 niezakłócający działanie dla starych klientów.

Uwaga / Notatka

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, jak tylko powstają.

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 utworzone przez użytkownika klucze interfejsu API są używane wyłącznie z usługą nuget.org, a weryfikacje lub walidacje z usług innej firmy są obsługiwane za pomocą jednorazowych kluczy do weryfikacji 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

Name In Typ Required Notatki
identyfikator adres URL ciąg yes Identyfikator pakietu, dla którego zażądano klucza zakresu weryfikacji
VERSION adres URL ciąg no Wersja pakietu
X-NuGet-ApiKey Header ciąg yes Na przykład X-NuGet-ApiKey: {USER_API_KEY}

Odpowiedź

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

Interfejs API do weryfikowania klucza zakresu

Ten interfejs API jest używany do walidacji klucza verify-scope dla pakietu należącego do autora nuget.org.

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

Parametry żądania

Name In Typ Required Notatki
identyfikator adres URL ciąg yes Identyfikator pakietu, dla którego zażądano klucza zakresu weryfikacji
VERSION adres URL ciąg no Wersja pakietu
X-NuGet-ApiKey Header ciąg yes Na przykład X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

Uwaga / Notatka

Klucz API do weryfikacji zakresu wygasa po upływie jednego dnia lub przy pierwszym użyciu, w zależności od tego, co nastąpi wcześniej.

Odpowiedź

Kod stanu Meaning
200 Klucz interfejsu API jest prawidłowy
403 Klucz interfejsu API jest nieprawidłowy lub nie ma autoryzacji do wypychania do pakietu
404 Pakiet wskazany przez ID i VERSION (opcjonalnie) nie istnieje