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.