BRD Widget 8.7.1 Используемые методы
Направление работ: Widget Код раздела: 8.7.1 Раздел: Общие работы > Архитектура и инфраструктура > Используемые методы Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 11.08.26
1. Назначение
Раздел описывает, как виджет вызывает методы бэкенда: через API Gateway по схеме RPC-прокси, с авторизацией запросов токеном и автоматическим обновлением токена.
Документ описывает клиентскую схему вызова методов и авторизации запросов. Контракты и бизнес-логика методов — на стороне бэкенда (Back 6).
Раздел зависит от Back: 6.4 Открытое API.
2. Ключевые понятия
API Gateway — шлюз, через который виджет обращается к бэкенду.
RPC-метод — вызов вида service/method, проксируемый на шлюз.
Токен доступа и обновление токена — авторизация запросов и автоматическое обновление токена при его истечении.
3. Scope
Входит
S1: Вызов методов бэкенда через RPC-прокси
S2: Авторизация запросов и обновление токена
S3: Выделенные методы авторизации и конфигурации виджета
Не входит
- Widget: 8.7.2 Общие работы > Архитектура и инфраструктура > Оформление ошибок
- Back: 6.4 контракты и бизнес-логика методов
4. BR
Указаны в пункте 4 раздела Back: 6.4 Открытое API.
5. Функциональные требования (UC + FR)
FR — functional requirements, что интерфейс должен уметь делать по определенному UC.
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: #FR8.7.1-1 | Виджет вызывает метод бэкенда | Виджет вызывает методы бэкенда через прокси вида rpc/{service}/{method} на API Gateway и возвращает результат в едином формате (признак успеха, тело ответа, метаданные). | 1 | Реализовано | |
| S2: #FR8.7.1-2 | Запрос требует авторизации | Прокси подставляет токен доступа из cookie в запрос; при истечении токена (ответ 401) выполняет обновление токена и повторяет запрос. | 1 | Реализовано | |
| S3: #FR8.7.1-3 | Виджет использует выделенные методы | Для авторизации используются выделенные методы (вход, выход, регистрация, обновление токена, восстановление и сброс пароля, аккаунт), для конфигурации — метод получения конфигурации виджета по идентификатору. | 2 | Реализовано | |
| S1: #FR8.7.1-4 | Виджет запрашивает подбор слотов | Виджет передаёт в подбор слотов идентификатор города площадки, полученный вместе с данными площадки; подстановка заглушек вместо реального значения не допускается. | 1 | Не реализовано — метод GetBasesWidget не возвращает cityId, подставляется нулевой UUID |
6. Открытые вопросы
| ID | Источник | Вопрос | Кому | Статус |
|---|---|---|---|---|
| #OQ8.7.1-1 | Код | В расчёте слотов виджет использует временный обходной путь: cityId подставляется нулевым UUID, так как метод GetBasesWidget не возвращает cityId (в коде помечено TODO(backend)). Подтвердить контракт метода и убрать обходной путь. \ widgets/booking/steps/StepPrice.vue:327-345 Решение: cityId добавляется в контракт GetBasesWidget (в legacy-методе GetBases он был), после чего заглушка с нулевым UUID из виджета убирается и в SearchTimeSlots уходит настоящий город. Порядок: контракт и метод на бэкенде → переход виджета на реальное значение → снятие TODO(backend). До этого подбор слотов и цен идёт с нулевым городом — при разборе проверить, влияло ли это на выдачу. | Разработка | Закрыт |