Sobes.tech
Junior — Middle
119

Wie unterscheiden sich die HTTP-Methoden GET, POST, PUT, PATCH und DELETE im Kontext der Arbeit mit REST API?

Unternehmen wurden gefragt
Eclipse Digital

Antwort von AI

sobes.tech KI

В 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) { ... }