Este projeto é uma API backend para gerenciar faturas utilizando Fastify, Prisma ORM e um banco de dados PostgreSQL hospedado via Render.
- Fastify: Framework web para Node.js
- Prisma ORM: ORM para interação com o banco de dados PostgreSQL
- PostgreSQL: Banco de dados relacional
- Fastify Multipart: Para fazer upload de arquivos
- Node.js: Plataforma para execução do backend
-
Clone o repositório:
git clone https://github.com/ULYBR/faturas-backend.git cd faturas-backend
-
Instale as dependências:
npm install
-
Configure as variáveis de ambiente: Crie um arquivo
.env
na raiz do projeto e adicione as seguintes variáveis de ambiente:DATABASE_URL=postgresql://user:password@localhost:5432/faturas?schema=public PORT=3000
DATABASE_URL
: URL de conexão com o banco de dados. No ambiente local, pode ser o PostgreSQL rodando com Docker. No Render, será configurado automaticamente.PORT
: A porta que o Fastify irá escutar. Para o Render, isso será configurado automaticamente.
-
Rodando as migrações do Prisma: Para rodar as migrações e configurar o banco de dados:
npx prisma migrate deploy
-
Rodar o servidor localmente: Para rodar a API localmente em desenvolvimento:
npm run dev
Para rodar os testes unitários e obter a cobertura de teste, utilize o comando:
npm run test
npm run dev
: Inicia o servidor localmente no modo de desenvolvimento (usandots-node
).npm run build
: Compila o código TypeScript para JavaScript.npm run start
: Inicia o servidor após o build.npm run test
: Teste unitários.npx prisma migrate deploy
: Aplica as migrações no banco de dados.
Você pode importar a coleção do Postman para testar os endpoints da API.
- Baixe a coleção do Postman aqui.
- Abra o Postman e importe a coleção:
- Clique em Import > Upload Files e selecione o arquivo
.json
da coleção. - A coleção irá aparecer no seu Postman.
- Clique em Import > Upload Files e selecione o arquivo
- URL:
/faturas/cliente/:numCliente
- Método:
GET
- Descrição: Retorna todas as faturas para um cliente específico.
- Parâmetros:
numCliente
: Número do cliente.
- Exemplo de Requisição:
GET /faturas/cliente/12345
- URL:
/faturas/upload
- Método:
POST
- Descrição: Faz upload de um arquivo de faturas.
- Exemplo de Requisição:
POST /faturas/upload
- URL:
/faturas/mes
- Método:
GET
- Descrição: Retorna todas as faturas para um mês de referência específico.
- Parâmetros:
mesReferencia
: Mês de referência no formatoMMM/YYYY
(exemplo:JAN/2023
).
- Exemplo de Requisição:
GET /faturas/mes/?mesReferencia=JAN/2023
A API está disponível no ambiente de produção hospedado no Render. Você pode acessar os endpoints através do seguinte link:
https://teste-lumi.onrender.com
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE.