Какие методы CRUD важны на практике и чем они отличаются?
Продвинутые темы
Методы CRUD в REST — POST (Create), GET (Read), PUT/PATCH (Update), DELETE (Delete). Различаются назначением, идемпотентностью и данными.
Методы и их различия
Create — POST
Создаёт ресурс. Не идемпотентен (повтор создаёт дубликат), данные в теле:
POST /users { name: "Ann" } → 201 CreatedRead — GET
Получает данные. Идемпотентен, безопасен, кешируется, параметры в URL:
GET /users, GET /users/1 → 200 OKUpdate — PUT / PATCH
- PUT — заменить ресурс целиком (идемпотентен).
- PATCH — обновить часть (обычно не идемпотентен).
PUT /users/1 { name, email } # целиком
PATCH /users/1 { name } # частичноDelete — DELETE
Удаляет ресурс. Идемпотентен:
DELETE /users/1 → 204 No ContentРазличия
- GET — CRUD: Read; Идемпотентен: да; Данные: URL; Кеш: да
- POST — CRUD: Create; Идемпотентен: нет; Данные: тело; Кеш: нет
- PUT — CRUD: Update; Идемпотентен: да; Данные: тело; Кеш: нет
- PATCH — CRUD: Update; Идемпотентен: нет; Данные: тело; Кеш: нет
- DELETE — CRUD: Delete; Идемпотентен: да; Кеш: нет
Идемпотентность важна для безопасного повтора (retry).
Коротко для собеседования
Методы CRUD в REST: POST (Create, не идемпотентен, тело), GET (Read, идемпотентен, кеш, URL), PUT (Update целиком, идемпотентен), PATCH (Update часть, обычно не идемпотентен), DELETE (Delete, идемпотентен). GET/PUT/DELETE идемпотентны — безопасно повторять; POST — нет (риск дублей).