Junior — Middle
Como distinguir os métodos HTTP GET, POST, PUT, PATCH e DELETE no contexto do trabalho com REST API?
sobes.tech IA
Resposta da IA
Na API REST, os métodos HTTP são utilizados para diferentes operações com recursos:
- GET — obter dados. Método seguro e idempotente, não altera o estado do servidor.
- POST — criar um novo recurso ou realizar uma operação que altera o estado. Não é idempotente.
- PUT — atualização completa do recurso. É idempotente, uma requisição repetida com os mesmos dados não alterará o resultado.
- PATCH — atualização parcial do recurso. Não necessariamente idempotente, depende da implementação.
- DELETE — eliminar um recurso. É idempotente, uma chamada repetida eliminará o recurso ou indicará que não existe.
Exemplo:
| Método | Operação | Idempotência | Exemplo de uso |
|---|---|---|---|
| GET | Obter dados | Sim | Obter lista de utilizadores |
| POST | Criar recurso | Não | Criar um novo utilizador |
| PUT | Atualizar recurso | Sim | Substituir perfil de utilizador |
| PATCH | Atualizar parcialmente | Parcialmente | Atualizar email do utilizador |
| DELETE | Eliminar recurso | Sim | Eliminar utilizador |
Exemplo em Java usando 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) { ... }