Esta API permite a geração de relatórios em formato Excel ou PDF com base em dados fornecidos pelo usuário. Os dados são enviados através de requisições HTTP, e a API responde com um arquivo de relatório gerado.
Endpoint: POST /report/excel
Descrição: Gera um relatório em formato Excel com base nos dados enviados no corpo da requisição.
Exemplo de Requisição:
POST /report/excel HTTP/1.1
Host: localhost:3000
Content-Type: application/json
[
{ "produto": "Produto A", "servico": "Serviço 1", "tarefa": "Tarefa X" },
{ "produto": "Produto B", "servico": "Serviço 2", "tarefa": "Tarefa Y" },
{ "produto": "Produto C", "servico": "Serviço 3", "tarefa": "Tarefa Z" }
]Resposta: O servidor retorna um arquivo Excel (.xlsx).
Exemplo de Resposta:
- Um arquivo Excel com as colunas Produto, Serviço e Tarefa, contendo os dados fornecidos.
Endpoint: POST /report/pdf
Descrição: Gera um relatório em formato PDF com base nos dados enviados no corpo da requisição.
Exemplo de Requisição:
POST /report/pdf HTTP/1.1
Host: localhost:3000
Content-Type: application/json
[
{ "produto": "Produto A", "servico": "Serviço 1", "tarefa": "Tarefa X" },
{ "produto": "Produto B", "servico": "Serviço 2", "tarefa": "Tarefa Y" },
{ "produto": "Produto C", "servico": "Serviço 3", "tarefa": "Tarefa Z" }
]Resposta: O servidor retorna um arquivo PDF (.pdf).
Exemplo de Resposta:
- Um arquivo PDF contendo as informações de Produto, Serviço e Tarefa de cada item.
O projeto está organizado da seguinte forma:
/project-root
│
├── src
│ ├── app.module.ts # Módulo principal do aplicativo
│ ├── app.controller.ts # Controlador principal
│ ├── app.service.ts # Serviço principal
│ ├── report
│ │ ├── report.module.ts # Módulo de relatórios
│ │ ├── report.controller.ts # Controlador de relatórios
│ │ └── report.service.ts # Serviço de geração de relatórios
├── .env # Configurações de ambiente
├── .gitignore # Arquivos ignorados pelo Git
├── package.json # Dependências do projeto
├── tsconfig.json # Configurações do TypeScript
└── README.md # Documentação do projeto
report.module.ts: Define o módulo de relatórios.report.controller.ts: Controla as rotas relacionadas à geração de relatórios.report.service.ts: Contém a lógica para geração de arquivos Excel e PDF.
Antes de executar o projeto, instale as dependências:
npm installPara rodar a aplicação localmente:
npm run startUtilize ferramentas como Postman ou Insomnia para enviar requisições aos endpoints:
- Para gerar um relatório Excel, envie uma requisição
POSTpara/report/excelcom os dados no corpo. - Para gerar um relatório PDF, envie uma requisição
POSTpara/report/pdfcom os dados no corpo.
Os exemplos de dados a seguir podem ser utilizados para testar a API:
[
{ "produto": "Produto A", "servico": "Serviço 1", "tarefa": "Tarefa X" },
{ "produto": "Produto B", "servico": "Serviço 2", "tarefa": "Tarefa Y" },
{ "produto": "Produto C", "servico": "Serviço 3", "tarefa": "Tarefa Z" }
]As principais bibliotecas utilizadas no projeto são:
- exceljs: Para geração de arquivos Excel.
- pdfkit: Para geração de arquivos PDF.