Una buena response de error hace dos cosas: usa el HTTP status code correcto (la señal legible por máquina), y devuelve un body estructurado y consistente sobre el que un desarrollador pueda actuar. Las formas de error inconsistentes son una de las mayores fuentes de dolor en el lado del client.
Usa un formato de error estándar: RFC 7807 (problem+json)
RFC 7807 define un body estándar de "problem details" con un media type dedicado, de modo que cada error en tu API tiene el mismo aspecto:
HTTP/1.1 404 Not Found
Content-Type: application/problem+json
{
"type": "https://api.example.com/errors/not-found",
"title": "Resource not found",
"status": 404,
"detail": "No user exists with id 999",
"instance": "/users/999"
}
