API Mapping - PlutoGr/TravelAgency GitHub Wiki
Соответствие экранов и API
Таблица связывает экраны и сценарии интерфейса с API для согласованной разработки фронтенда и бэкенда.
Публичная часть и каталог
| Экран / Действие |
Метод и endpoint |
Сервис |
| Главная — горячие предложения |
GET /api/v1/catalog/tours?featured=true (или аналог) |
Catalog |
| Главная — направления |
GET /api/v1/catalog/directions |
Catalog |
| Поиск (Hero) → переход в каталог |
GET /api/v1/catalog/tours?direction=...&from=...&to=...&travelers=... |
Catalog |
| Каталог — список туров с фильтрами |
GET /api/v1/catalog/tours?page=...&sort=... |
Catalog |
| Карточка тура |
GET /api/v1/catalog/tours/{id} |
Catalog |
| Цены по датам |
GET /api/v1/catalog/tours/{id}/prices или в составе карточки |
Catalog |
Аутентификация
| Экран / Действие |
Метод и endpoint |
Сервис |
| Вход |
POST /api/v1/auth/login |
Identity (через Gateway) |
| Регистрация |
POST /api/v1/auth/register |
Identity |
| Выход |
POST /api/v1/auth/logout |
Identity |
| Обновление токена |
POST /api/v1/auth/refresh |
Identity |
| Профиль текущего пользователя |
GET /api/v1/auth/me |
Identity |
| Редактирование профиля |
PATCH /api/v1/auth/me |
Identity |
Заявки и избранное (клиент)
| Экран / Действие |
Метод и endpoint |
Сервис |
| Создание заявки |
POST /api/v1/bookings |
Booking |
| Список «Мои заявки» |
GET /api/v1/bookings/my |
Booking |
| Детальная страница заявки |
GET /api/v1/bookings/{id} |
Booking |
| Добавить в избранное |
POST /api/v1/favorites/{tourId} |
Booking |
| Удалить из избранного |
DELETE /api/v1/favorites/{tourId} |
Booking |
| Список избранного |
GET /api/v1/favorites (если есть) или в составе профиля |
Booking |
Чат и сообщения (в рамках заявки)
| Экран / Действие |
Метод / механизм |
Сервис |
| Сообщения по заявке |
GET /api/v1/chat/booking/{bookingId}/messages |
Chat (или Booking при fallback) |
| Отправка сообщения в реальном времени |
SignalR Hub /hubs/chat |
Chat |
Рабочее место менеджера
| Экран / Действие |
Метод и endpoint |
Сервис |
| Список заявок (CRM) |
GET /api/v1/bookings?status=...&manager=... (admin/manager API) |
Booking |
| Смена статуса заявки |
PATCH /api/v1/bookings/{id}/status |
Booking |
| Отправка предложения (тур клиенту) |
POST /api/v1/bookings/{id}/proposal |
Booking |
| Список туров для выбора |
GET /api/v1/catalog/tours |
Catalog |
| Создание/редактирование тура |
POST /api/v1/catalog/tours, PUT /api/v1/catalog/tours/{id} |
Catalog |
| Цены тура |
PATCH /api/v1/catalog/tours/{id}/prices |
Catalog |
Медиа (если включён Media Service)
| Действие |
Метод и endpoint |
Сервис |
| Загрузка файла |
POST /api/v1/media/upload |
Media |
| Получение файла |
GET /api/v1/media/{id} |
Media |
| Presigned URL (загрузка с клиента) |
POST /api/v1/media/presign |
Media |
Примечания
- Префикс внешнего API:
/api/v1 (см. API-карту).
- Все запросы (кроме публичного каталога и логина/регистрации) требуют заголовка
Authorization: Bearer <access_token>.
- Роли:
Client, Manager, Admin — разграничение доступа к CRM и управлению каталогом на бэкенде.
Подробные сервисные контракты: Gateway, Identity, Catalog, Booking, Chat, Media.