Проверяет понимание идемпотентности HTTP-методов и её влияния на надёжность пользовательских операций в веб-интерфейсе.
Идемпотентность — это свойство операции, при котором её многократное выполнение приводит к тому же состоянию системы, что и однократное. В контексте пользовательского интерфейса это важно, потому что пользователь может нажать кнопку дважды, браузер может повторить запрос при таймауте, а сеть — потерять ответ. Если операция идемпотентна, повтор не сломает данные.
POST обычно создаёт новый ресурс при каждом вызове. Два одинаковых POST-запроса создадут две записи. PATCH может быть неидемпотентным, если он выполняет относительные изменения, например «увеличить счётчик на 1».
Кнопка «Сохранить профиль» с методом PUT идемпотентна: повторное нажатие просто перезапишет те же данные. А кнопка «Оформить заказ» с POST — нет: двойной клик может создать два заказа. Поэтому для критичных действий применяют токены идемпотентности или блокировку кнопки после первого нажатия.
// Идемпотентный PUT: повторный вызов не создаёт дубликат
fetch('/api/users/42', {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: 'Alice', email: 'a@example.com' })
});
// Неидемпотентный POST: каждый вызов создаёт новый заказ
fetch('/api/orders', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ itemId: 7, qty: 1 })
});
Итог: идемпотентность стоит применять для операций, которые могут быть повторены из-за сбоев сети или действий пользователя. Проектируйте чтение, полное обновление и удаление как идемпотентные, а создание и относительные изменения защищайте токенами или подтверждениями.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
Networks
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию