Ответ
Типовая задача формулировалась как User Story с техническими деталями в Confluence/Jira.
Пример задачи по разработке REST API:
Title: [Backend] Реализация эндпоинта для создания заказа
User Story: Как авторизованный клиент, я хочу создать новый заказ из товаров в корзине, чтобы завершить покупку.
Technical Description:
- Эндпоинт: POST /api/v1/orders
- Аутентификация: JWT (требуется роль USER или CLIENT)
- Входные данные (OrderRequestDto):
* cartId (UUID)
* shippingAddress (String)
* paymentMethodId (String) // Ссылка на сохраненный метод в Stripe
Business Logic:
1. Валидация DTO.
2. Проверка наличия и актуальности корзины.
3. Расчет итоговой суммы с учетом налогов.
4. Создание платежного интента в Stripe.
5. Сохранение заказа в БД со статусом "PENDING_PAYMENT".
6. Логирование события создания заказа.
Acceptance Criteria:
- Эндпоинт возвращает 201 Created и OrderResponseDto с ID заказа.
- При отсутствии JWT-токена возвращается 401.
- При невалидной корзине возвращается 400 с описанием ошибки.
- Информация о платеже сохраняется в таблице `payments`.
Tech Stack: Spring Boot, Hibernate (JPA), PostgreSQL, Stripe SDK.
К задаче прилагались ссылки на спецификацию API (Swagger) и схему соответствующих таблиц в БД.