Встречается на собеседованиях • сегодня

Как обеспечить идемпотентность данных при реализации RESTful сервиса для бронирования такси

Идемпотентность в REST API означает, что повторные одинаковые запросы не изменяют состояние системы. Для бронирования такси можно использовать следующие подходы: 1. **Idempotency-Key** - клиент передает уникальный ключ в заголовке, сервер сохраняет его и результат обработки первого запроса: ```java @PostMapping("/bookings") public ResponseEntity createBooking( @RequestBody BookingRequest request, @RequestHeader("Idempotency-Key") String idempotencyKey) { if (bookingService.existsByIdempotencyKey(idempotencyKey)) { return ResponseEntity.ok(bookingService.getByKey(idempotencyKey)); } // Создание брони } ``` 2. **PUT вместо POST** - если бронь имеет уникальный идентификатор заранее: ```java @PutMapping("/bookings/{id}") public Booking updateBooking(@PathVariable String id, @RequestBody Booking booking) { // Создание или обновление брони с указанным ID } ``` 3. **Оптимистичная блокировка** - проверка версии ресурса через ETag. Важно также учитывать временные рамки действия идемпотентности и очищать старые ключи.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы