BRD Widget 8.7.2 Оформление ошибок
Направление работ: Widget Код раздела: 8.7.2 Раздел: Общие работы > Архитектура и инфраструктура > Оформление ошибок Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 11.08.26
1. Назначение
Раздел описывает, как виджет оформляет ошибки: сообщения в контексте действия, уведомления по кодам статуса и единый результат при ошибке запроса.
Документ описывает клиентское оформление ошибок. Показ уведомлений — раздел 8.6; вызовы методов и авторизация — раздел 8.7.1; backend-коды и события — Back 7.
Раздел зависит от Back: 7.2 Процессинг и каналы доставки уведомлений.
2. Ключевые понятия
Ошибка — состояние, о котором виджет сообщает клиенту.
Код статуса — серверный код, по которому формируется сообщение об ошибке.
Единый текст ошибки — обобщённая формулировка, не раскрывающая детали (например, при неверных данных входа).
3. Scope
Входит
S1: Показ ошибок в контексте действия
S2: Показ ошибок уведомлениями по кодам статуса
S3: Обработка ошибок запросов и авторизации
Не входит
- Widget: 8.6 Общие работы > Уведомления в виджете
- Widget: 8.7.1 Общие работы > Архитектура и инфраструктура > Используемые методы
- Back: 7.2 backend-коды статусов и события
4. BR
Указаны в пункте 4 раздела Back: 7.2 Процессинг и каналы доставки уведомлений.
5. Функциональные требования (UC + FR)
FR — functional requirements, что интерфейс должен уметь делать по определенному UC.
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: #FR8.7.2-1 | Ошибка в контексте действия | Интерфейс показывает ошибки в контексте действия — например, единую ошибку «Неверный логин или пароль» при входе и ошибку расчёта заказа рядом с формой. | 1 | Частично реализовано — ошибка входа показывается, ошибка создания заказа до клиента не доходит, см. OQ8.7.2-1 | |
| S2: #FR8.7.2-2 | Ошибка по коду статуса | Интерфейс показывает ошибки уведомлениями, сформированными по кодам статуса от сервера (раздел 8.6). | 2 | Реализовано — механизм общий для всего проекта | |
| S3: #FR8.7.2-3 | Ошибка запроса | При ошибке запроса виджет возвращает единый результат с признаком неуспеха и сообщением; при истечении авторизации показывает сообщение о необходимости авторизации. | 2 | Реализовано |
6. Открытые вопросы
| ID | Источник | Вопрос | Кому | Статус |
|---|---|---|---|---|
| #OQ8.7.2-1 | Код | Уточнено 11.08.26, исходная формулировка была неточной. По входу: ошибка клиенту показывается — единое сообщение Неверный логин или пароль выводится под полем пароля, требование FR8.7.2-1 выполнено; дублирующие вызовы console.error рядом — лишние. По созданию заказа: сообщение не доходит до клиента — createOrderError записывается в стор, но ни один компонент его не читает, в catch стоит только комментарий. Решение: отдельный механизм показа не нужен — уведомления по кодам статуса рисуются автоматически, это общий механизм всего проекта. Для ошибки создания заказа требуется завести текст кода статуса и задать время показа; локальный createOrderError в отдельной отрисовке не нуждается. \ features/auth/ui/Authorization.vue:250-258,301-310, widgets/booking/ui/OrderBaseForm.vue:325-337, widgets/order-form/model/useOrderFormStore.ts:289 | Разработка | Закрыт |
| #OQ8.7.2-2 | Код вне BRD | Что нашли: вызовы console.error разбросаны шире, чем упоминалось: features/auth/ui/Registration.vue:539,560, features/auth/ui/Authorization.vue:302,306,308, features/auth/ui/PartnerRegistration.vue:144, features/auth/ui/PasswordRecovery.vue:264,317. Часть из них дублирует уже показанное клиенту сообщение, часть остаётся единственной реакцией на ошибку. Заодно с работой по OQ8.7.2-1 пройти эти точки и решить по каждой: показывать клиенту уведомлением по коду статуса или убрать лог. | Разработка | Закрыт |