Projeto base usando Fastify, Prisma, Zod e Domain-Driven Design (DDD).
src/
├── domain/ # Camada de Domínio
│ ├── user/
│ │ ├── user.entity.ts # Agregado User
│ │ └── user.repository.ts # Interface do repositório
│ └── post/
│ ├── post.entity.ts # Agregado Post
│ └── post.repository.ts # Interface do repositório
├── application/ # Camada de Aplicação
│ └── use-cases/
│ ├── user/ # Casos de uso de User
│ └── post/ # Casos de uso de Post
├── infrastructure/ # Camada de Infraestrutura
│ ├── database/
│ │ └── prisma.ts # Cliente Prisma
│ ├── repositories/
│ │ ├── prisma-user.repository.ts
│ │ └── prisma-post.repository.ts
│ └── http/
│ └── routes/
│ ├── user.routes.ts
│ └── post.routes.ts
└── server.ts # Arquivo principal do servidor
npm install
cp .env.example .env
docker-compose up -d
npm run prisma:generate
npm run prisma:migrate
Desenvolvimento:
npm run dev
Build:
npm run build
npm start
POST /users - Criar usuárioGET /users - Listar todos os usuáriosGET /users/:id - Buscar usuário por IDPOST /posts - Criar postGET /posts - Listar todos os postsGET /posts/:id - Buscar post por IDPATCH /posts/:id/publish - Publicar postGET /health - Verificar status do servidor