API construída com Fastify (Node.js), Prisma (para ORM), e Zod (para validação de dados). O projeto é desenvolvido em TypeScript.
- Instalação
- Configuração do .ENV
- Usando o Docker Compose
- Configuração do Prisma
- Rodando a API
- Scripts
- Node.js (versão 16 ou superior)
- pnpm (como gerenciador de pacotes)
-
Clone o repositório:
git clone https://github.com/paulopariz/fastify-clean
-
Acesse o diretório do projeto:
cd fastify-clean -
Instale as dependências do projeto utilizando o
pnpm:pnpm install
Para configurar a aplicação, crie um arquivo .env na raiz do projeto com os seguintes parâmetros:
PORT=3333
DATABASE_URL="postgresql://user_fast:123456@localhost:5432/db_fast"O projeto oferece suporte para rodar um banco de dados PostgreSQL em um container Docker utilizando o Docker Compose.
-
Certifique-se de que o Docker e o Docker Compose estão instalados em seu ambiente.
-
No diretório do projeto, execute o seguinte comando para subir o container do banco de dados:
docker-compose up --build
Isso irá:
- Criar e rodar o container para o banco de dados PostgreSQL.
- Configurar o banco de dados conforme a configuração no arquivo
docker-compose.yml.
-
Para parar o container do banco de dados, execute:
docker-compose down
-
Após a instalação das dependências, é necessário rodar a migração do banco de dados. Se você estiver utilizando Docker, o banco de dados estará configurado automaticamente.
-
Para gerar as migrações do Prisma e configurar o banco de dados, rode o comando:
npx prisma migrate dev
-
Para gerar o cliente Prisma, execute o comando:
npx prisma generate
-
Você pode conferir o banco com o Prisma Studio rodando o seguinte comando:
npx prisma studio
-
Agora o Prisma estará pronto para ser utilizado na aplicação!
Para rodar o projeto localmente.
-
Inicie o servidor com o comando:
pnpm dev
Isso irá rodar o servidor em modo de desenvolvimento. O servidor estará rodando na porta padrão (geralmente
3333). -
Acesse a API no navegador ou via Postman/Insomnia:
http://localhost:3333
pnpm dev: Inicia o servidor em modo de desenvolvimento.npx prisma migrate dev: Aplica as migrações no banco de dados.npx prisma generate: Gera o cliente Prisma após alterações no modelo.npx prisma studio: Abre o modo de visualizar o banco de dados.