Назад к вопросам
Junior — Middle
66
Как отличить методы HTTP GET, POST, PUT, PATCH и DELETE в контексте работы REST API?
Компании, где спрашивали
Eclipse Digital
Ответ от нейросети
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) { ... }