me_edu
REST API: проектирование и потреблениеШаг 8 из 27 · 0% пройдено
HTTP-методы · HTTP-методы

Свойства методов: безопасность и идемпотентность

У методов есть два важных свойства, которые помогают проектировать надёжные API.

Безопасный метод не меняет данные на сервере. GET — безопасен: сколько раз ни запрашивай, состояние сервера не изменится. Поэтому GET можно кешировать и повторять без опаски.

Идемпотентный метод даёт один и тот же результат при повторении. GET, PUT и DELETE идемпотентны: удалить пользователя дважды — он всё равно удалён, результат тот же. А вот POST не идемпотентен: повторный POST создаст вторую запись (поэтому двойная отправка формы может задвоить заказ).

Практические правила: • не используйте GET для изменения данных — это нарушает ожидания и ломает кеширование; • для создания берите POST, для обновления — PUT/PATCH; • помните о неидемпотентности POST: защищайте формы от двойной отправки.

Эти свойства — не формальность: на них опираются браузеры, прокси и кеши, чтобы безопасно повторять и кешировать запросы.

Назад

Обсуждение

Войдите, чтобы участвовать в обсуждении.

Пока нет сообщений.