← Volver al inicio
# 🚀 GUÍA RÁPIDA DE INTEGRACIÓN

## 📌 Lo Primero: Elige Tu Opción

| Opción | Para Quién | Dificultad | Tiempo |
|--------|-----------|-----------|--------|
| **HTML Standalone** | Usuarios finales | Muy fácil | 1 min |
| **Python** | Desarrolladores backend | Fácil | 5 min |
| **JavaScript** | Desarrolladores frontend | Fácil | 5 min |
| **cURL** | Scripts/Terminal | Fácil | 2 min |
| **Node.js** | Servidores Node | Normal | 10 min |

---

## 🟢 OPCIÓN 1: HTML Standalone (La más fácil)

### Paso 1: Descarga
Archivo: **`cliente.html`**

### Paso 2: Abre en navegador
```
Doble-click en cliente.html
```

### Paso 3: Listo
- Arrastra tu RUT en PDF
- Click en "Extraer Información"
- ¡Eso es todo!

**Ventajas:**
- ✅ No requiere instalación
- ✅ Funciona en cualquier navegador
- ✅ Sin dependencias
- ✅ Super rápido

**Desventajas:**
- ❌ Solo para uso local
- ❌ No puedes automatizar

---

## 🔵 OPCIÓN 2: Python

### Paso 1: Instala Python
```bash
# Windows: Descarga de python.org
# Mac: brew install python3
# Linux: sudo apt-get install python3
```

### Paso 2: Instala librería
```bash
pip install requests
```

### Paso 3: Usa el ejemplo
Archivo: **`ejemplo-python.py`**

```bash
# Uso básico
python ejemplo-python.py rut.pdf

# Ver resultado
python ejemplo-python.py mi-rut.pdf > datos.json
```

### Paso 4: En tu código
```python
from consumidor_api import ExtractorRUT

extractor = ExtractorRUT()
datos = extractor.extraer('rut.pdf')

if datos:
    print(f"NIT: {datos['identificacion']['nit']}")
    print(f"Razón Social: {datos['datos_juridicos']['razon_social']}")
```

**Ventajas:**
- ✅ Excelente para automatización
- ✅ Fácil de usar
- ✅ Perfecto para scripts
- ✅ Integración con bases de datos

**Desventajas:**
- ❌ Requiere Python instalado
- ❌ Requiere dependencias

---

## 🟡 OPCIÓN 3: JavaScript (Frontend)

### Paso 1: Copia el código
Archivo: **`ejemplo-javascript.js`**

### Paso 2: En tu HTML
```html
<!DOCTYPE html>
<html>
<head>
    <title>Mi App</title>
</head>
<body>
    <input type="file" id="fileInput" accept=".pdf" />
    <button onclick="extraerRUT()">Extraer</button>
    
    <script src="ejemplo-javascript.js"></script>
    <script>
        async function extraerRUT() {
            const archivo = document.getElementById('fileInput').files[0];
            const resultado = await extraerRUTConReintentos(archivo);
            console.log('Datos:', resultado);
        }
    </script>
</body>
</html>
```

### Paso 3: Usa en tu aplicación
```javascript
// En React
const [datos, setDatos] = useState(null);

const handleFile = async (e) => {
    const resultado = await extraerRUT(e.target.files[0]);
    setDatos(resultado);
};

// En Vue
async procesarRUT(archivo) {
    this.datos = await extraerRUT(archivo);
}

// En Angular
procesarRUT(archivo: File) {
    this.api.extraerRUT(archivo).subscribe(
        datos => this.datos = datos
    );
}
```

**Ventajas:**
- ✅ Funciona en navegador
- ✅ No requiere backend
- ✅ Fácil integración
- ✅ Respuesta instantánea

**Desventajas:**
- ❌ Expone URL de API al cliente
- ❌ Límites de CORS en algunos casos

---

## 🔴 OPCIÓN 4: cURL (Terminal)

### Paso 1: Abre terminal
```bash
# macOS/Linux
Terminal

# Windows
PowerShell o CMD
```

### Paso 2: Ejecuta comando
```bash
curl -X POST \
  -F "file=@rut.pdf" \
  https://datosrut.codepyme.com/procesar | jq '.'
```

### Paso 3: Ver resultado
Automáticamente en la terminal

**Ventajas:**
- ✅ Sin instalación (cURL está en todo)
- ✅ Perfecto para testing rápido
- ✅ Automatización en scripts bash
- ✅ Más seguro que JavaScript

**Desventajas:**
- ❌ Solo terminal
- ❌ No es interactivo para usuarios

---

## 🟣 OPCIÓN 5: Node.js

### Paso 1: Instala Node.js
```bash
# Descarga de nodejs.org
# O: brew install node
```

### Paso 2: Instala dependencias
```bash
npm init -y
npm install express multer axios form-data
```

### Paso 3: Usa el ejemplo
Archivo: **`ejemplo-nodejs.js`**

```bash
node ejemplo-nodejs.js
```

### Paso 4: Sube un RUT
```bash
curl -X POST \
  -F "file=@rut.pdf" \
  http://localhost:3000/procesar-rut
```

**Ventajas:**
- ✅ Backend profesional
- ✅ Fácil de escalar
- ✅ Integración con bases de datos
- ✅ Manejo robusto de errores

**Desventajas:**
- ❌ Requiere Node.js
- ❌ Un poco más complejo

---

## 📊 COMPARATIVA RÁPIDA

```
┌─────────────────┬──────────────┬─────────┬──────────┐
│ Opción          │ Instalación  │ Rapidez │ Poder    │
├─────────────────┼──────────────┼─────────┼──────────┤
│ HTML            │ 0 min        │ ⭐⭐⭐   │ ⭐      │
│ Python          │ 5 min        │ ⭐⭐    │ ⭐⭐⭐  │
│ JavaScript      │ 0 min        │ ⭐⭐⭐   │ ⭐⭐    │
│ cURL            │ 0 min        │ ⭐⭐    │ ⭐      │
│ Node.js         │ 10 min       │ ⭐⭐⭐   │ ⭐⭐⭐  │
└─────────────────┴──────────────┴─────────┴──────────┘
```

---

## 🎯 MIS RECOMENDACIONES

### Para un usuario final (sin programación)
👉 **HTML Standalone**
- Solo abre el archivo
- Listo para usar

### Para automatizar procesos
👉 **Python**
- Procesar múltiples RUTs
- Guardar en base de datos
- Integrar con otros sistemas

### Para una web moderna
👉 **JavaScript + Frontend Framework** (React, Vue, Angular)
- Experiencia interactiva
- Sin servidor (usando CORS)

### Para procesos rápidos desde terminal
👉 **cURL**
- Perfecto para testing
- Automatización con bash scripts

### Para servidor robusto
👉 **Node.js + Express**
- Backend profesional
- Escalable y mantenible

---

## 🆘 SOLUCIÓN DE PROBLEMAS

### "CORS Error"
**Problema:** JavaScript en navegador no puede conectar
**Solución:** Usa Node.js backend como proxy

### "Module not found"
**Problema:** En Python falta librería
**Solución:** 
```bash
pip install requests
```

### "Timeout"
**Problema:** Solicitud tardó mucho
**Solución:** 
- Aumenta timeout a 120 segundos
- Verifica conexión a internet

### "PDF no válido"
**Problema:** El archivo no es reconocido
**Solución:**
- Asegúrate que es PDF real
- No PDF de imagen (requiere OCR)

---

## 📚 PRÓXIMOS PASOS

1. **Elige tu opción** (arriba)
2. **Descarga el archivo correspondiente**
3. **Sigue la guía paso a paso**
4. **Prueba con tu primer RUT**
5. **¡Integra en tu proyecto!**

---

## 🔗 ARCHIVOS INCLUIDOS

```
📦 Tu proyecto
├── 📄 README_CLIENTE.md          ← Documentación completa
├── 🎨 cliente.html               ← HTML standalone
├── 🐍 ejemplo-python.py          ← Python listo para usar
├── 📜 ejemplo-javascript.js      ← JavaScript ejemplos
├── 🐚 ejemplo-curl.sh            ← Scripts bash
├── 📦 ejemplo-nodejs.js          ← Node.js ejemplos
└── 📋 INTEGRACION_RAPIDA.md      ← Este archivo
```

---

## 💬 ¿Necesitas ayuda?

1. **Lee la documentación:** `README_CLIENTE.md`
2. **Mira los ejemplos:** Archivo específico para tu lenguaje
3. **Contacta:** Al equipo de desarrollo

---

**¡Listo para integrarse! 🚀**