Aula 12 - CRUD Completo 🏗️
Manipulando Dados Profissionalmente
Agenda de Hoje 📅
- O que é CRUD?
- Create (POST): Enviando dados
- Read (GET): Relembrando a busca
- Update (PUT): Editando registros
- Delete (DELETE): Removendo dados
- Prática: Dashboard de Inventário
1. O Ciclo de Vida do Dado: CRUD 🔄
- Create: Criar um novo recurso.
- Read: Ler um recurso existente.
- Update: Atualizar um recurso.
- Delete: Remover um recurso.
2. Preparando o fetch() ⚙️
- Para operações além do GET, precisamos passar um objeto de configuração:
fetch(url, {
method: 'POST', // ou PUT, DELETE
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(dados)
})
3. Create (POST) 🆕
- Usado para enviar dados de um formulário para o banco.
async function adicionarItem(novoItem) {
const res = await fetch(API_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(novoItem)
});
return await res.json();
}
4. Update (PUT / PATCH) ✏️
- PUT: Substitui o recurso inteiro.
- PATCH: Altera apenas alguns campos (parcial).
// Ex: Atualizando o preço de um produto
await fetch(`${API_URL}/${id}`, {
method: 'PUT',
body: JSON.stringify({ nome: 'Notebook', preco: 4500 })
});
5. Delete (DELETE) 🗑️
- O método mais simples, geralmente exige apenas o ID.
async function remover(id) {
await fetch(`${API_URL}/${id}`, {
method: 'DELETE'
});
// Após deletar na API, delete no Array local!
lista = lista.filter(item => item.id !== id);
}
6. Sincronização Local vs Remota 📡
graph LR
A[Usuário Clica] --> B(Chamada para API)
B -->|Sucesso| C(Atualiza Variável no Svelte)
C -->|Reatividade| D((Interface Atualizada)) - Lembre-se: A API salva o dado, o Svelte atualiza a tela.
7. Headers e Segurança 🛡️
Content-Type: Avisa ao servidor que estamos enviando JSON.Authorization: Tokens de acesso para áreas restritas.
8. Tratamento de Resposta 💬
- Sempre verifique se o servidor retornou um erro (ex: 404 ou 500).
9. Prática: Gestor de Tarefas 📝
- Crie uma lista que busca dados de uma API.
- Adicione um formulário para cadastrar novas tarefas (POST).
- Adicione um botão "Lixeira" em cada item (DELETE).
10. Resumo da Aula ✅
- POST para criar, GET para ler, PUT para atualizar, DELETE para remover.
- Use
JSON.stringifyno corpo da requisição. - Sincronize sempre o array local com o banco de dados.
Próxima Aula: Ciclo de Vida ⏳
- onMount, onDestroy.
- beforeUpdate, afterUpdate.
- Performance e tick().
Dúvidas? 🤔
"Um sistema CRUD bem feito é a base de 90% das aplicações comerciais do mundo."