Назад к вопросам
Senior
4
Что такое идемпотентная операция и какие методы REST являются идемпотентными?
Компании, где спрашивали
Lanit PPM
Ответ от нейросети
sobes.tech AI
Идемпотентная операция — это операция, которую можно выполнять несколько раз подряд с одинаковым результатом и без побочных эффектов после первого вызова. То есть, повторный вызов не изменит состояние системы дополнительно.
В контексте REST API идемпотентными считаются следующие методы:
- GET — получение ресурса не меняет состояние сервера.
- PUT — обновление ресурса с одинаковыми данными несколько раз подряд приводит к одному и тому же состоянию.
- DELETE — удаление ресурса несколько раз подряд после первого вызова не изменяет состояние (ресурс уже удалён).
- HEAD, OPTIONS, TRACE — также считаются идемпотентными, так как не изменяют состояние.
Пример:
// Пример идемпотентного PUT запроса в Go
func updateUser(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPut {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
// Парсим тело запроса и обновляем пользователя
// Повторный вызов с теми же данными не изменит состояние
}