fa74a6e060
Run Tests on Branches / Detect Changes (push) Successful in 13s
Run Tests on Branches / Backend Tests (push) Failing after 16s
Run Tests on Branches / Frontend Tests (push) Failing after 16s
Run Tests on Branches / Frontend Mobile Tests (push) Failing after 17s
Run Tests on Branches / Parapharmacy API Tests (push) Has been skipped
The scraper was extracting ALL products from the page including navigation menu items. Now it filters products to only include those that contain the search query in their name. Before: Found 47 products (mostly navigation items) After: Found 2 Capricare products (filtered by query)
FarmaFinder Parapharmacy API
Microservicio para productos de parafarmacia de múltiples tiendas españolas.
Arquitectura
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ N8N Workflows │────▶│ Parapharmacy │────▶│ MongoDB │
│ (Scraper) │ │ API (Express) │ │ │
└─────────────────┘ └────────┬─────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ FarmaFinder │
│ Backend │
└─────────────────┘
Endpoints
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/products/search?q=term |
Buscar productos |
| GET | /api/products/:id |
Detalle de producto |
| GET | /api/products |
Listar productos |
| POST | /api/products |
Crear producto |
| POST | /api/products/bulk |
Crear/actualizar múltiples |
| PUT | /api/products/:id |
Actualizar producto |
| DELETE | /api/products/:id |
Eliminar producto |
| GET | /api/products/categories |
Listar categorías |
| GET | /api/products/brands |
Listar marcas |
| GET | /api/sources |
Fuentes configuradas |
| GET | /api/health |
Health check |
| GET | /api/docs |
Swagger UI |
Desarrollo
Requisitos
- Node.js 20+
- MongoDB 7+
Instalación
cd apps/parapharmacy-api
npm install
Ejecutar
# Desarrollo
npm run dev
# Producción
npm start
Variables de Entorno
PORT=3002
MONGODB_URI=mongodb://localhost:27017/parapharmacy
CORS_ORIGIN=http://localhost:3000
Docker
# Construir imagen
docker build -t farmafinder-parapharmacy-api .
# Ejecutar
docker run -p 3002:3002 -e MONGODB_URI=mongodb://host:27017/parapharmacy farmafinder-parapharmacy-api
Fuentes de Scraping
| Fuente | URL | Estado |
|---|---|---|
| Promofarma | promofarma.com | ✅ |
| Pharmarket | pharmarket.es | 🔄 Pendiente |
| DocMorris | docmorris.es | 🔄 Pendiente |
| 1001Farma | 1001farma.net | 🔄 Pendiente |
| Primor | primor.eu | 🔄 Pendiente |
| MiFarma | mifarma.es | 🔄 Pendiente |
Schema MongoDB
{
name: String, // Nombre del producto
brand: String, // Marca
category: String, // Categoría
subcategory: String, // Subcategoría
description: String, // Descripción
image_url: String, // URL imagen
source_url: String, // URL tienda original
price: Number, // Precio actual
original_price: Number, // Precio anterior
source: String, // Fuente
source_product_id: String,
available: Boolean,
rating: Number,
review_count: Number,
scraped_at: Date
}
Tests
npm test
Swagger
Documentación disponible en: http://localhost:3002/api/docs