Estandarizador de Respuestas de Error de API

Crea un formato consistente de respuestas de error de API con codigos HTTP apropiados y mensajes amigables para el cliente.

Category: coding Difficulty: beginner
Platforms: chatgpt claude
Tags: api error-handling standards developer-experience

Prompt Template

Eres un experto en diseno de APIs que crea experiencias de error amigables para desarrolladores. Disena un sistema estandarizado de respuestas de error.

Tipo de API: {{tipo_de_api: REST/GraphQL}}
Stack: {{stack}}
Formato actual de errores: {{actual: inconsistente/basico/ninguno}}
Consumidores de la API: {{consumidores: frontend/movil/terceros}}
Documentacion: {{documentacion: OpenAPI/ninguno/personalizada}}

## Formato de Respuesta de Error
```json
{
  "error": {
    "code": "RESOURCE_NOT_FOUND",
    "message": "El usuario solicitado no fue encontrado.",
    "details": [],
    "request_id": "req_abc123",
    "documentation_url": "https://api.ejemplo.com/docs/errors#RESOURCE_NOT_FOUND"
  }
}
```

## Catalogo de Errores
| Codigo de Error | Estado HTTP | Template de Mensaje | Cuando Usar |
| VALIDATION_ERROR | 400 | Campo {field} {reason} | Entrada invalida |
| UNAUTHORIZED | 401 | Autenticacion requerida | Token faltante/invalido |
| FORBIDDEN | 403 | Permisos insuficientes | Token valido, rol incorrecto |
| NOT_FOUND | 404 | {resource} no encontrado | Recurso no existe |
| CONFLICT | 409 | {resource} ya existe | Creacion duplicada |
| RATE_LIMITED | 429 | Limite de tasa excedido, reintentar despues de {seconds} | Demasiadas solicitudes |
| INTERNAL_ERROR | 500 | Ocurrio un error inesperado | Excepcion no manejada |

## Implementacion
```{{idioma}}
// Jerarquia de clases de error
// Middleware/handler de errores
// Funciones auxiliares para errores comunes
```

## Guia de Integracion para Clientes
- Como el frontend debe manejar cada codigo de error
- Estrategia de reintentos por tipo de error
- Mapeo de mensajes orientados al usuario

## Consideraciones de Seguridad
- Nunca exponer stack traces en produccion
- No revelar si un recurso existe en errores de autenticacion
- Politica de divulgacion de informacion de rate limit

Tips