Skip to content

Web API: невалидный context в поиске по alias/uri отдаёт другую ошибку, чем get/{id} #705

Closed

Description

@biz87

Проблема

После #644 контекст в публичном каталоге проверяется в двух местах, и на одно и то же невалидное значение клиент получает разные ошибки.

Код ответа одинаковый, но клиент поиска по alias/uri не отличит плохой context от плохого alias. Для категорий то же самое.

Вторая сторона — дублирование правил. Следующее изменение правил контекста придётся вносить в два места.

Попутно: вызов CatalogQuery::resolveContext() внутри CatalogResolve::resolveLookupContext() до ветки с исключением не доходит — явный context к этому моменту уже проверен локальной копией. Там он работает только для контекста по умолчанию.

Предложение

CatalogResolve использует проверку из CatalogQuery, перехватывает CatalogContextException и отдаёт ms3_err_catalog_context_invalid. Своя копия регулярки удаляется.

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

  • Правила валидации контекста реализованы в одном месте
  • get/{id}?context=bad и get?alias=x&context=bad отдают одинаковый ключ ошибки — для товаров и категорий
  • Тест на оба пути с одинаковым ответом

Контекст

Activity

  1. added
    priority: lowНизкий приоритет, когда будет время
    tech-debtMaintainability / refactor / architecture debt
    on Sep 11, 2026
  2. self-assigned this
    on Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

priority: lowНизкий приоритет, когда будет времяtech-debtMaintainability / refactor / architecture debt

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions