PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Какие методы CRUD важны на практике и чем они отличаются?

Продвинутые темы

Методы CRUD в REST — POST (Create), GET (Read), PUT/PATCH (Update), DELETE (Delete). Различаются назначением, идемпотентностью и данными.

Методы и их различия

Create — POST

Создаёт ресурс. Не идемпотентен (повтор создаёт дубликат), данные в теле:

POST /users { name: "Ann" } → 201 Created

Read — GET

Получает данные. Идемпотентен, безопасен, кешируется, параметры в URL:

GET /users, GET /users/1 → 200 OK

Update — 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 — нет (риск дублей).

Другие вопросы раздела