GET/v1/catalog/services
Pobieranie listy usług z katalogu
list_catalog_services
Zwraca pozycje globalnego katalogu usług zewnętrznych (SaaS i dostawcy): wyszukiwanie podciągu bez rozróżniania wielkości liter w nazwie, grupie lub domenie witryny, filtr kategorii i stronicowanie. Łączna liczba dla filtra jest w nagłówku X-Total-Count. Katalog jest wspólny dla wszystkich organizacji i dostępny dla każdego zalogowanego użytkownika. Jego dane są dostarczane z Sursą i aktualizowane z każdym wydaniem (wersja jest w GET /v1/catalog/categories i w polu version adresu icon_url każdej pozycji).
Uwierzytelnianie
Wyślij klucz API w nagłówku Authorization: Authorization: Bearer <klucz>.
Parametry zapytania
qstring | nullPodciąg nazwy, grupy lub domeny witryny (bez rozróżniania wielkości liter).
length ≤ 200
categorystring | nullSlug kategorii (
GET /v1/catalog/categories).offsetintegerDomyślnie: 0≥ 0
limitintegerDomyślnie: 50≥ 1, ≤ 500
cursorstringKursor następnej strony z
X-Next-Cursorlubnext_cursorpoprzedniej odpowiedzi z tymi samymi filtrami; zawiera rozmiar strony. Razem zoffset:422 validation.failed; kursor innej listy, innych filtrów lub uszkodzony:400 api.cursor_invalid.length ≤ 512
Parametry nagłówka
X-View-AsstringTylko dla kluczy API z rolą
admin. Wykonuje żądanie jako profil dostępu<profile>[:viewer|verifier|editor], np.employee:viewer. Klucz instalacji nie może używać tego nagłówka (403).
Parametry cookie
kb_view_asstringPlik cookie trybu „View as” dla sesji.
POST /auth/view-asgo ustawia, aDELETE /auth/view-asusuwa.
Odpowiedzi
200Pomyślna odpowiedź
Nagłówki odpowiedzi
LinkAdres następnej strony,
<…>; rel="next". Brak nagłówka oznacza, że to ostatnia strona.X-Next-CursorKursor następnej strony dla parametru
cursor. Brak nagłówka oznacza, że to ostatnia strona.X-Total-CountŁączna liczba wpisów pasujących do filtra, niezależnie od
limitioffset.RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
categorystringwymaganeIdentyfikator tekstowy (slug) kategorii (
GET /v1/catalog/categories).description_enstring | nullwymaganeKrótki opis po angielsku.
null, jeśli opisu brak.domainstring | nullwymaganeDomena witryny bez
www..null, jeśli usługa nie ma witryny.group_namestring | nullwymaganeGrupa (dostawca), jeśli usługa należy do rodziny produktów, np. Atlassian; w przeciwnym razie
null.iconbooleanwymaganeCzy ikona jest dostarczana razem z Sursą.
icon_urlstring | nullwymaganeURL ikony (
/v1/catalog/services/{service_id}/icon?v=…lub adres zewnętrzny skonfigurowany przez instalację).null, jeśli ikony brak.idstring (uuid)wymaganenamestringwymaganeslugstringwymaganewebsitestring | nullwymaganeURL witryny (
https://…) lubnull.
401Nie przesłano danych uwierzytelniających (ani pliku cookie sesji, ani klucza API) lub nie znaleziono klucza.
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
403Działanie jest niedozwolone: rola jest niewystarczająca, brak dostępu do kolekcji lub karty, żądanie jest wykonywane w trybie „View as” albo organizacja jest zawieszona lub usunięta (`detail` to obiekt z `code: org_suspended | org_deleted`).
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
422Błąd walidacji: treść lub parametry nie odpowiadają schematowi (`detail` to lista błędów walidacji) albo wartość parametru jest poza zakresem (`detail` zawiera komunikat).
Nagłówki odpowiedzi
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
429Zbyt wiele żądań (`api.rate_limited`), wyczerpano przydział organizacji na minutę, dzień lub miesiąc (`api.quota_exceeded`; `error.details` zawiera `quota`, `limit` i `reset_at`), osiągnięto limit organizacji albo usługa odpowiedzi jest zajęta (`answers.engine_busy`). Odczekaj czas podany w nagłówku `Retry-After`.
Nagłówki odpowiedzi
Retry-AfterLiczba sekund oczekiwania przed ponowieniem żądania.
RateLimit-PolicyObowiązujące limity w formacie projektu IETF
draft-ietf-httpapi-ratelimit-headers: elementy rozdzielone przecinkami"<name>";q=<quota>;w=<window in seconds>.keyto częstotliwość żądań klucza API (przydział to wielkość chwilowego szczytu (burst), okno to czas jego pełnego odnowienia; dla sesji jest touser, bez danych uwierzytelniającychip);minute,dayimonthto przydziały organizacji na minutę, dzień i miesiąc kalendarzowy w UTC.RateLimitCo pozostało z każdego limitu w
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najbardziej restrykcyjnej pozycji w
RateLimit-Policy(tej, w której zostało najmniej żądań).X-RateLimit-RemainingLiczba żądań pozostałych w ramach najbardziej restrykcyjnego limitu.
X-RateLimit-ResetLiczba sekund do odnowienia najbardziej restrykcyjnego limitu.
application/json
Kody błędów
Kody, które ta operacja może zwrócić w error.code, oprócz ogólnych kodów każdego żądania.
Limity częstotliwości
Odpowiedzi zawierają nagłówki RateLimit i RateLimit-Policy oraz starsze X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset. Odpowiedź 429 ma nagłówek Retry-After w sekundach: odczekaj i ponów żądanie.