Перегляньте каталог
Список вендорів, фільтр провайдерів за можливостями — і схема, проти якої ви зберігатимете.
Read-only розминка: знайти провайдера, вартого налаштування, і дізнатися, як має виглядати його credential. Усе тут — каталожні дані, однакові для кожного, хто викликає з вашою роллю.
Мета
Закінчити з code одного провайдера та його credential_schema на руках, пройшовши шлях вендори → відфільтровані провайдери → повна картка.
Передумови
export CREDS_BASE=...і токен користувацької площиниexport TOKEN=...(User Plane Tokens), або dev-auth заголовки локально (Quickstart).
Кроки
1. Перелічіть вендорів
Викличте GET /v1/vendors:
curl -s "$CREDS_BASE/v1/vendors" -H "Authorization: Bearer $TOKEN"
Очікуване 200: items зі стислими картками вендорів плюс catalog_version. Як звичайна роль ви бачите active і deprecated вендорів (Vendors and Providers).
2. Відфільтруйте провайдерів за тим, що вони вміють
Викличте GET /v1/providers з фільтром за можливістю:
curl -s "$CREDS_BASE/v1/providers?capability=translation&category=mt" \
-H "Authorization: Bearer $TOKEN"
Очікуване 200: лише провайдери, чий capabilities.translation дорівнює true і чия категорія — mt; total рахує всі збіги до пагінації.
3. Прочитайте один провайдер повністю
Викличте GET /v1/providers/{provider_code} для коду з кроку 2:
import httpx
provider = httpx.get(
f"{CREDS_BASE}/v1/providers/{code}",
headers={"Authorization": f"Bearer {TOKEN}"},
).json()
assert provider["credential_schema"]["type"] == "object"
required = provider["credential_schema"].get("required", [])
Очікуване 200: повна картка — вендор, обидві схеми, можливості (capabilities), credential_resolution, технічні нотатки. required — це точний список секретних полів, які має надіслати наступний сценарій (Provider Schemas).
4. Доведіть межу видимості
Запитайте код провайдера, якого не існує:
curl -s "$CREDS_BASE/v1/providers/no_such_provider" -H "Authorization: Bearer $TOKEN"
Очікуване 404 з error.code = "PROVIDER_NOT_FOUND" — та сама відповідь, яку removed-провайдер дає звичайній ролі.
Перевірено тестом test_s01_browse_the_catalog.