Consumo de API REST 🌐
Aula 10 - Integrando com o Mundo Externo
🔌 Conectando o Frontend ao Backend
- Frontend (Vue): Interface e Experiência
- Backend (API): Banco de Dados e Lógica de Negócio
- A integração acontece via protocolo HTTP
🛠️ O que é uma API REST?
- Padrão de comunicação universal
- Utiliza verbos HTTP:
- GET: Buscar dados
- POST: Criar dados
- PUT/PATCH: Editar dados
- DELETE: Remover dados
🥊 Fetch vs Axios
- Fetch: Nativo do Browser, sintaxe mais longa
- Axios: Biblioteca externa, mais poderosa e intuitiva
- Faz JSON automático
- Suporta Interceptadores
- Melhor tratamento de erros
📦 Instalando o Axios
- Recomendação: Criar um serviço centralizado -src/services/api.js 🏗️ Criando Instância Axios
🕒 Async / Await
- A forma moderna de lidar com processos que demoram
🛡️ Tratamento de Erros: try/catch
- E se a internet cair? E se o servidor der erro 500?
🔄 Fluxo de Dados API
sequenceDiagram
participant User
participant Vue
participant API
User->>Vue: Clica em "Listar"
Vue->>API: GET /produtos
API-->>Vue: JSON { items: [...] }
Vue->>Vue: Atualiza ref(produtos)
Vue-->>User: Mostra lista na tela 🐌 Feedback de Carregamento (Loading)
- Nunca deixe o usuário no escuro!
- Use uma variável
loading = trueantes do await - Mude para
falseno blocofinally
🔍 Parâmetros na URL (Query Params)
- Buscar por filtros:
🏗️ Cadeia de Requisições
- Quando uma requisição depende da outra
- Use
awaitem sequência para manter o código limpo e organizado
🧪 JSON Server (Mock API)
- Para testes locais rápidos
- Cria um backend real a partir de um arquivo
.json - Ideal para a fase de aprendizado
🏗️ Desafio da Aula
- Integrar com a API JSONPlaceholder
- Listar Usuários em um componente
- Mostrar detalhe do endereço ao clicar em um usuário
- Implementar estado de Loading e tratamento de erro
🏁 Resumo
- Axios facilita o consumo de dados
- Sempre use async/await para clareza
- Trate erros para não quebrar a aplicação
🏁 Dúvidas?
Boas requisições! Próxima aula: Gerenciamento de Estado (Pinia).