Sobes.tech
Back to questions
Junior — Middle
68

Как отличить методы HTTP GET, POST, PUT, PATCH и DELETE в контексте работы REST API?

Companies where asked
Eclipse Digital

Answer from AI

sobes.tech AI

В REST API методы HTTP используются для разных операций с ресурсами:

  • GET — получение данных. Безопасный и идемпотентный метод, не изменяет состояние сервера.
  • POST — создание нового ресурса или выполнение операции, которая изменяет состояние. Не идемпотентен.
  • PUT — полное обновление ресурса. Идемпотентен, повторный запрос с теми же данными не изменит результат.
  • PATCH — частичное обновление ресурса. Не обязательно идемпотентен, зависит от реализации.
  • DELETE — удаление ресурса. Идемпотентен, повторный вызов удалит ресурс или вернёт, что его нет.

Пример:

Метод Операция Идемпотентность Пример использования
GET Получить данные Да Получить список пользователей
POST Создать ресурс Нет Создать нового пользователя
PUT Обновить ресурс Да Заменить профиль пользователя
PATCH Частично обновить Частично Обновить email пользователя
DELETE Удалить ресурс Да Удалить пользователя

Пример на Java с использованием Spring:

@GetMapping("/users/{id}")
public User getUser(@PathVariable String id) { ... }

@PostMapping("/users")
public User createUser(@RequestBody User user) { ... }

@PutMapping("/users/{id}")
public User updateUser(@PathVariable String id, @RequestBody User user) { ... }

@PatchMapping("/users/{id}")
public User patchUser(@PathVariable String id, @RequestBody Map<String, Object> updates) { ... }

@DeleteMapping("/users/{id}")
public void deleteUser(@PathVariable String id) { ... }