API oficial do projeto Dogs, responsável por autenticação integrada ao Supabase, perfis, cachorros, raças, publicações e arquivos de mídia.
| Ambiente | Para que serve | API | Swagger | Frontend |
|---|---|---|---|---|
| Desenvolvimento | Testes e validação das próximas versões | dogs-api-dev | Abrir documentação | Abrir aplicação |
| Produção | Versão estável disponível ao público | dogs-api-prod | Abrir documentação | Abrir aplicação |
Os serviços usam o plano gratuito do Render. O primeiro acesso após um período sem uso pode levar alguns segundos enquanto a API é iniciada.
O projeto mantém dados e serviços separados para que testes não alterem informações reais:
feature/* -> develop -> Dogs DEV -> Supabase dogs-dev
develop -> main -> Dogs PROD -> Supabase dogs-prod- DEV recebe as alterações da branch
develope é usado para testar novas funcionalidades. - PROD recebe somente alterações promovidas para a branch
maine representa a versão estável. - Cada ambiente possui sua própria API, banco de dados, autenticação e armazenamento de imagens.
- autenticação de usuários com Supabase Auth;
- sincronização e edição de perfis;
- catálogo de raças;
- cadastro e gerenciamento de cachorros;
- feed público e gerenciamento de publicações;
- upload de imagens no Supabase Storage;
- documentação interativa com Swagger;
- migrations e acesso ao PostgreSQL com Prisma.
O Swagger permite conhecer e testar os endpoints diretamente pelo navegador, sem instalar ferramentas adicionais.
- Abra o Swagger de desenvolvimento ou o Swagger de produção.
- Expanda um endpoint para visualizar parâmetros, exemplos e respostas possíveis.
- Para rotas públicas, clique em Try it out e depois em Execute.
- Para rotas protegidas, autentique-se no frontend, obtenha um token válido e use o botão Authorize com
Bearer <token>.
O contrato completo e os formatos de resposta estão em docs/API_CONTRACT.md.
- Node.js 20;
- Yarn 1.x;
- acesso a um projeto Supabase configurado.
yarn installCrie o arquivo .env.local a partir do .env.example e informe as credenciais do ambiente de desenvolvimento. Nunca versione esse arquivo.
Inicie a API:
yarn devServiços locais:
| Recurso | Endereço |
|---|---|
| API | http://localhost:3333 |
| Health check | http://localhost:3333/health |
| Swagger | http://localhost:3333/docs |
| OpenAPI JSON | http://localhost:3333/docs-json |
O frontend autentica o usuário no Supabase e envia o access token para a Dogs API:
Authorization: Bearer <supabase_access_token>Rotas públicas podem ser consultadas sem token. Operações de perfil, publicação, upload e gerenciamento de cachorros exigem autenticação.
| Comando | Finalidade |
|---|---|
yarn dev |
Inicia a API local com recarregamento automático |
yarn test |
Executa os testes automatizados |
yarn validate |
Executa lint, formatação, tipos, testes e build |
yarn build |
Compila a aplicação |
yarn start |
Inicia a aplicação compilada |
yarn prisma:migrate:deploy |
Aplica migrations versionadas |
yarn prisma:seed |
Cadastra os dados iniciais idempotentes |
| Documento | Conteúdo |
|---|---|
| Contrato da API | Swagger, autenticação e padrões de resposta |
| Arquitetura | Organização e decisões da aplicação |
| Ambientes | Variáveis e separação entre local, dev e prod |
| Deployment | Render, branches e processo de publicação |
| Segurança | Cuidados com credenciais e acesso |
| Desenvolvimento | Fluxo de trabalho local |
| Guia do Prisma | Banco, migrations e seed |
| Estratégia de autenticação | Integração com Supabase Auth |
| Coleção HTTP | Requisições para testes manuais |
Node.js, TypeScript, NestJS, Prisma, PostgreSQL, Supabase Auth, Supabase Storage, Swagger, Jest e Render.
- Backend: ArturRibeiro01/dogs-api
- Frontend: ArturRibeiro01/react-dogs