# Versionamento de APIs APIs evoluem, mas mudanças não devem quebrar clientes existentes. - **Estratégias principais:** - **URI Versioning:** Incluir o número da versão na URL (ex: `/api/v1/products`). - **Query String:** Versão enviada como parâmetro (ex: `/products?v=1`). - **Header Versioning:** Versão especificada no cabeçalho da requisição. - O uso de URIs estáticas permite que os recursos sejam "bookmarked" (favoritados). ---
*Explicação:* `PUT` substitui todo o recurso. Se você enviar dados incompletos, o servidor atualiza apenas o que foi enviado e assume o resto como "não existente" ou mantém o anterior dependendo da implementação (geralmente substitui tudo). `PATCH` é parcial: ele aplica apenas as mudanças especificadas no corpo da requisição, mantendo os outros campos intactos. *Exemplo:* Para mudar apenas o email de um usuário, use `PATCH`. Se você quiser recriar todo o perfil do usuário com novos dados, use `PUT`.