Junior — Middle
124
Cum să distingi metodele HTTP GET, POST, PUT, PATCH și DELETE în contextul lucrului cu REST API?
Companiile au fost întrebate
Eclipse Digital
Răspuns de la 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) { ... }