Главная/Каталог/Полный каталог одним запросом ENУКРРУС API-справочник (ReDoc) ↗

Полный каталог одним запросом

GET /v1/catalog возвращает каждого видимого вендора с полностью детализированными провайдерами — без обхода N+1.

Потребитель, которому нужно всё — построитель форм, выбор провайдера, экспортируемый снапшот — раньше обходил каталог в стиле N+1: перечислить вендоров, затем забирать каждого провайдера по одному ради его схем. GET /v1/catalog заменяет это одним запросом:

curl -s "$CREDS_BASE/v1/catalog" -H "Authorization: Bearer $TOKEN"
{
  "vendors": [
    {
      "code": "deepl",
      "name": "DeepL",
      "website": "https://www.deepl.com",
      "status": "active",
      "lifecycle": null,
      "providers": [
        {
          "code": "deepl_api",
          "name": "DeepL API",
          "category": "mt",
          "status": "active",
          "credential_resolution": {"...": "..."},
          "credential_schema": {"...": "..."},
          "configuration_schema": {"...": "..."},
          "capabilities": {"...": "..."},
          "technical_info": {"...": "..."},
          "lifecycle": null
        }
      ]
    }
  ],
  "catalog_version": "2026.08.24"
}

Каждый узел провайдера несёт все свои каталожные данные — те же поля, что и деталь провайдера, минус избыточная вложенность вендора.

Три свойства, на которые можно опереться:

  • Ничего о сохранённых credentials. Даже того, существуют ли они. Ответ — чистый каталог; для «настроено ли хоть что-то?» есть Credential Status.
  • Видимость — обычная матрица. Обычные роли получают active/deprecated вендоров и провайдеров; provider_admin/auditor — ещё и disabled; include_removed=true (только админ/аудитор, иначе 403) добавляет removed на обоих уровнях. См. Vendors and Providers.
  • Без пагинации. Payload ограничен размером YAML-каталога, который сервис и так держит в памяти. Кэшируйте его по ключу catalog_version, если зовёте часто — он меняется только с развёртыванием.