API бронирования должно разделять поиск, временный резерв, подтверждение и отмену. Повторные команды обязаны учитывать идемпотентность и актуальное состояние места.
Опиши API системы бронирования билетов
API бронирования должно разделять поиск, временный резерв, подтверждение и отмену. Повторные команды обязаны учитывать идемпотентность и актуальное состояние места.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
API бронирования должно разделять поиск, временный резерв, подтверждение и отмену. Повторные команды обязаны учитывать идемпотентность и актуальное состояние места.
Возможный контракт: GET /events и /availability, POST /holds, GET /holds/{id}, POST /bookings, GET /bookings/{id}, POST /bookings/{id}/cancel. Hold имеет TTL, а создание брони атомарно проверяет доступность.
Оплата подтверждается доверенным событием провайдера, не browser redirect. Определите статусы, конфликт 409, сроки резерва, ключ идемпотентности и права владельца. Поиск может быть слегка устаревшим, подтверждение — нет.