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

В чем разница между PUT и PATCH

PUT полностью заменяет ресурс новыми данными, требуя передачи всех полей. Если какие-то поля не указаны, они будут установлены в null или дефолтные значения.

PATCH применяет частичное обновление, изменяя только указанные поля. Остальные поля остаются без изменений.

Пример PUT:

java
// Обновит весь ресурс, name станет null если не указан
@PutMapping("/users/{id}")
public void updateUser(@PathVariable Long id, @RequestBody User user) {
    user.setId(id);
    userRepository.save(user);
}

Пример PATCH:

java
// Обновит только email, остальные поля не изменятся
@PatchMapping("/users/{id}")
public void patchUser(@PathVariable Long id, @RequestBody Map<String, Object> updates) {
    User user = userRepository.findById(id).orElseThrow();
    if (updates.containsKey("email")) {
        user.setEmail((String) updates.get("email"));
    }
    userRepository.save(user);
}

PUT идемпотентен (повторные вызовы дают тот же результат), PATCH может быть неидемпотентным.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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