API REST desenvolvida como do Bootcamp FullStack Generation, simulando o back-end de um e-commerce de farmácia. A aplicação permite gerenciar produtos e categorias com operações completas de CRUD e relacionamento entre as entidades.
A API está disponível em produção no Render:
🔗 API: https://pharmacy-ecommerce-api.onrender.com
📄 Documentação (Swagger): https://pharmacy-ecommerce-api.onrender.com/docs
⚠️ O plano gratuito do Render entra em modo de hibernação após inatividade. A primeira requisição pode levar até 50 segundos para responder.
| Tecnologia | Versão |
|---|---|
| Node.js | 18+ |
| NestJS | 10+ |
| TypeScript | 5+ |
| TypeORM | 0.3+ |
| PostgreSQL | — |
| Swagger (OpenAPI) | — |
| Render | — |
| Campo | Tipo | Descrição |
|---|---|---|
id |
number | Identificador único |
nome |
string | Nome da categoria |
descricao |
string | Descrição da categoria |
produtos |
Produto[] | Produtos relacionados |
| Campo | Tipo | Descrição |
|---|---|---|
id |
number | Identificador único |
nome |
string | Nome do produto |
descricao |
string | Descrição do produto |
preco |
decimal | Preço unitário |
estoque |
number | Quantidade em estoque |
foto |
string | URL da imagem |
categoria |
Categoria | Categoria do produto |
Relação: uma Categoria possui muitos Produtos (
OneToMany / ManyToOne)
- Node.js 18 ou superior
- PostgreSQL instalado e rodando
- Git
git clone https://github.com/clarodriguess/pharmacy-ecommerce-api.git
cd pharmacy-ecommerce-apinpm installNo terminal do PostgreSQL:
CREATE DATABASE farmacia;Crie um arquivo .env na raiz do projeto:
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=sua_senha
DB_DATABASE=farmacia
NODE_ENV=development# Modo desenvolvimento
npm run start:devA API estará disponível em: http://localhost:4000
A documentação Swagger em: http://localhost:4000/docs
| Método | Rota | Descrição |
|---|---|---|
GET |
/categorias |
Lista todas as categorias |
GET |
/categorias/:id |
Busca categoria por ID |
GET |
/categorias/nome/:nome |
Busca categoria por nome |
POST |
/categorias |
Cria nova categoria |
PUT |
/categorias |
Atualiza uma categoria |
DELETE |
/categorias/:id |
Remove uma categoria |
| Método | Rota | Descrição |
|---|---|---|
GET |
/produtos |
Lista todos os produtos |
GET |
/produtos/:id |
Busca produto por ID |
GET |
/produtos/nome/:nome |
Busca produto por nome |
POST |
/produtos |
Cria novo produto |
PUT |
/produtos |
Atualiza um produto |
DELETE |
/produtos/:id |
Remove um produto |
A API conta com documentação interativa gerada automaticamente pelo Swagger UI.
Acesse /docs para visualizar e testar todos os endpoints diretamente pelo navegador, sem precisar de ferramentas externas como Insomnia ou Postman.
Configure as seguintes variáveis no painel do Render (Web Service → Environment):
NODE_ENV=production
DB_HOST=
DB_PORT=5432
DB_USERNAME=
DB_PASSWORD=
DB_DATABASE=| Campo | Valor |
|---|---|
| Build Command | npm install --include=dev && npm run build |
| Start Command | node dist/main.js |
| Plano | Free |
Desenvolvido por Clarisse Rodrigues