Skip to content

Изменение внешнего API для получения списка Kafka Connect коннекторов #11

@Columpio

Description

@Columpio

Внешний сервис Cluster API изменил точку входа для получения списка коннекторов. Старый эндпоинт будет выведен из эксплуатации. Необходимо адаптировать наш клиентский код.

  • Было (v1):
    GET {clusterApiUrl}/topics/getAllConnectors/{connectHost}/{protocol}/{clusterId}?connectorStatus=true
  • Стало (v2):
    GET {clusterApiUrl}/v2/connectors?host={connectHost}&protocol={protocol}&cluster={clusterId}&includeStatus=true

Обоснование

  1. Консолидация API-нейминга и версионирования: провайдер Cluster API переносит коннекторные эндпоинты в единое пространство /v2 с унифицированными query-параметрами (host, protocol, cluster, includeStatus) вместо смешанных path/query схем в v1.
  2. Улучшение кэширования и маршрутизации на стороне API-шлюза: переход к query-параметрам облегчает CDN/edge-правила и A/B rollout.
  3. Готовность к расширению ответа: новая версия допускает добавление фильтров и разрезов без ломки существующих клиентов (расширяемость query-параметров).
  4. Деприкация legacy-путей в разделе /topics/*: провайдер убирает историческую привязку к разделу "topics" для операций Kafka Connect.

Детали изменения

  • Переезд с path-параметров ({connectHost}/{protocol}/{clusterId}) на query-параметры (host, protocol, cluster).
  • Переименование query-параметра: connectorStatus (v1) -> includeStatus (v2).
  • Базовый путь: было /topics/getAllConnectors/, стало /v2/connectors.

Стратегия обратной совместимости

Рекомендуется мягкий переход (graceful migration):

  • Сначала пробовать v2 (GET /v2/connectors ...)
  • При 404/405/Not Implemented — автоматически откатываться на v1 (старый путь)
  • После полной готовности инфраструктуры — убрать fallback на v1 в одной из следующих минорных версий

Риски и влияние

  • При отсутствии fallback и задержке раскатки Cluster API v2 возможны деградации функционала получения списка коннекторов.
  • Изменение имени параметра может привести к неверным результатам (статусы не будут загружаться), если забыть переименовать connectorStatus -> includeStatus.

План тестирования

  • Юнит-тест: корректная сборка запроса для v2 (правильные query-параметры).
  • Интеграционный тест/мок: успешный ответ v2 и корректный парсинг в ConnectorsStatus.
  • Негативный тест: v2 возвращает 404 — выполняется откат на v1; результат не меняется.

Критерии приемки

  • Сервис корректно получает список коннекторов через v2 при доступности нового API.
  • При недоступности v2 автоматически используется v1 без влияния на пользовательский функционал.
  • Тесты проходят, регрессий по связанному функционалу (синхронизация Kafka Connect) нет.

Чеклист задач

  • Обновить константы и сборку URL (ClusterApiService, KwConstants)
  • Добавить fallback v2 -> v1
  • Обновить тесты и моки
  • Провести ручную проверку против стенда с Cluster API v2
  • Удалить fallback в одной из следующих версий (отдельной задачей)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions