# Guía de Mock REST API

Crea endpoints REST API gratis e instantáneos con respuestas, códigos de estado y funciones avanzadas personalizadas. Sin registro.

## Primeros pasos

Crear un endpoint mock de REST API lleva menos de 30 segundos. Sigue estos sencillos pasos:

1. **Visita la página principal**  
   Ve a [mockapi.dog](/content/es/index.html) y selecciona la pestaña "REST API".
2. **Elige el método HTTP**  
   Selecciona GET, POST, PUT, PATCH o DELETE según tus necesidades.
3. **Escribe tu respuesta JSON**  
   Introduce los datos JSON que quieres que devuelva el endpoint. El editor valida el JSON en tiempo real.
   
   ```json
   {
        "id": 1,
        "name": "John Doe",
        "email": "john@example.com"
   }
   ```
4. **Configura retardos y simulación de errores (opcional)**  
   Añade retardos, códigos de estado, tasas de error o cabeceras personalizadas si lo necesitas.
5. **Completa la verificación y guarda**  
   Completa la verificación de Turnstile y pulsa "Guardar endpoint mock". ¡La URL de tu endpoint se copia automáticamente!
   
   `https://abc123.mockapi.dog/api/users`

#### ¡Tu endpoint está activo al instante!

Sin despliegue, sin esperas. Empieza a hacer peticiones al momento desde tu app, tus tests o herramientas como Postman y curl.

## Funciones principales

### Métodos HTTP

Soporte para todos los métodos HTTP estándar para que coincidan con el diseño de tu API.

- `GET` - Recuperar datos
- `POST` - Crear recursos
- `PUT` - Actualización completa
- `PATCH` - Actualización parcial
- `DELETE` - Eliminar recursos

### Códigos de estado

Devuelve cualquier código de estado HTTP para probar éxito, errores y casos límite.

- 200 OK - Éxito
- 201 Creado
- 400 Bad Request
- 401 No autorizado
- 500 Error de servidor

### Respuestas JSON

Devuelve cualquier estructura JSON válida: desde objetos simples hasta datos anidados complejos.

- Objetos y arrays
- Estructuras anidadas
- Arrays de objetos
- Validación en tiempo real
- Content-Type correcto

## Funciones avanzadas

Ajusta tus endpoints mock con potentes funciones para escenarios de prueba realistas.

### Retardos de respuesta

Simula redes lentas o tiempos de procesamiento del servidor añadiendo retardos a las respuestas.

Casos de uso:

- Probar estados de carga en la UI
- Simular redes 3G/4G lentas
- Verificar el manejo de timeouts
- Comprobar skeleton screens

Ejemplos de retardos:

- 500ms - Rápido
- 2000ms - Normal
- 5000ms - Lento

### Simulación de errores

Configura un porcentaje de peticiones que devolverá errores. Perfecto para probar el manejo de errores y la lógica de reintentos.

Casos de uso:

- Probar error boundaries
- Verificar mecanismos de reintentos
- Comprobar mensajes de error
- Validar UI de fallback

Ejemplos de tasas de error:

- 10% errores
- 50% errores
- 100% errores

### Errores condicionales

Devuelve errores en función de condiciones concretas, como valores de cabecera o patrones de petición.

Ejemplos de casos de uso:

- Cabecera ausente: Devolver 401 si la cabecera X-API-Key no está presente
- ID concreto: Devolver 404 para userId "999" para probar escenarios de no encontrado
- Método de la petición: Devolver 405 para métodos HTTP no soportados

### TTL (tiempo de vida)

Define un tiempo de expiración para tus endpoints. Se eliminan automáticamente después de la duración indicada.

Opciones disponibles:

- 1 hora
- 24 horas
- 7 días
- 30 días

Perfecto para pruebas o demos temporales. Sin necesidad de limpiar manualmente.

## Tareas comunes

### Crear un endpoint

1. Pulsa el botón "Crear endpoint REST"  
2. Selecciona el método HTTP  
3. Introduce tu respuesta JSON  
4. Configura los ajustes opcionales  
5. Pulsa "Crear endpoint"

✓ ¡Tu endpoint ya está activo!

### Editar un endpoint

1. Encuentra tu endpoint en la lista "Mis endpoints"  
2. Pulsa el botón "Editar"  
3. Modifica respuesta, estado o ajustes  
4. Guarda los cambios

✓ Los cambios se aplican al instante

### Eliminar un endpoint

1. Localiza el endpoint que quieres eliminar  
2. Pulsa el botón "Eliminar"  
3. Confirma la eliminación

Esta acción no se puede deshacer

### Probar un endpoint

Con curl:

```bash
curl https://abc123.mockapi.dog/api/users
```

Con JavaScript:

```javascript
fetch('https://abc123.mockapi.dog/api/users')
```

## Resolución de problemas

#### El endpoint devuelve 404 Not Found

**Solution:** Revisa la URL del endpoint. Asegúrate de usar la URL exacta que se te dio al crearlo, incluyendo el ID único.

#### Error de JSON no válido al crear el endpoint

**Solution:** Valida tu JSON con el editor integrado. Errores típicos: comas que faltan, claves sin comillas, comas finales o comillas sin escapar.

#### Errores de CORS en el navegador

**Solution:** Todos los endpoints incluyen automáticamente cabeceras CORS. Si sigues viendo errores, comprueba que estás usando la URL y el método HTTP correctos.

#### El endpoint es demasiado lento

**Solution:** Comprueba si has añadido un retardo de respuesta en los ajustes avanzados. Elimina o reduce el valor del retardo si no lo necesitas.

## Consejos y buenas prácticas

#### Usa datos realistas

Incluye nombres de campo, tipos de datos y estructuras realistas que coincidan con tu API real. Así las pruebas tienen más valor.

#### Prueba casos límite

Crea endpoints para arrays vacíos, valores null y escenarios de error. Esto ayuda a detectar bugs cuanto antes.

#### Documenta tus endpoints

Mantén una lista de tus endpoints y para qué sirven. Comparte URLs con tu equipo para colaborar.

#### Usa los retardos con cabeza

Añade pequeños retardos para probar estados de carga. Usa retardos más largos para verificar el manejo de timeouts.

#### Versiona tus respuestas

Crea varios endpoints para distintas versiones de la API. Así pruebas la compatibilidad hacia atrás.

#### Limpia los endpoints que no usas

Elimina periódicamente los endpoints que ya no necesites. Usa el TTL para que los temporales expiren automáticamente.

## Glosario

#### REST API

Representational State Transfer API: un estilo arquitectónico para construir servicios web usando métodos HTTP estándar.

#### Métodos HTTP

Métodos de petición estándar (GET, POST, PUT, PATCH, DELETE) que indican la acción deseada sobre un recurso.

#### Código de estado

Código de tres dígitos que devuelve el servidor para indicar el resultado de una petición (200 OK, 404 Not Found, 500 Error, etc.).

#### JSON

JavaScript Object Notation: un formato de datos ligero para estructurar e intercambiar datos entre cliente y servidor.

#### Endpoint

Una URL concreta donde se puede acceder a una API. Cada endpoint cumple una función específica.

#### Mock API

Una API simulada que devuelve respuestas predefinidas, usada para pruebas y desarrollo sin un backend real.

#### CORS

Cross-Origin Resource Sharing: una funcionalidad de seguridad que controla qué dominios pueden acceder a tu API desde el navegador.

#### TTL

Time To Live: la duración que existe un endpoint antes de su eliminación automática. Útil para pruebas temporales.

#### Tasa de error

Porcentaje de peticiones que deberían devolver errores. Se usa para probar el manejo de errores y la lógica de reintentos.

#### Retardo de respuesta

Tiempo de espera artificial añadido antes de enviar una respuesta. Simula redes lentas o procesamiento.
