🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónRespuestas de error útiles sin revelar internos
5 tareas · 35 min · Principiante
Un error bien contado le dice a quien lo recibe qué puede hacer y le da a soporte una forma de encontrar el detalle; uno mal contado entrega la consulta, el archivo o el servidor que falló, o deja adivinar lo que no debería. En el módulo de endurecimiento viste la traza en una página web; aquí el problema es el contrato de errores de una API. Droguería Siemprevida te entrega ocho respuestas de error de su API móvil, capturadas por su equipo de calidad en preproducción, el registro de ese día y el borrador de su contrato de errores.
Objetivo de la sala
Un error bien contado le dice a quien lo recibe qué puede hacer y le da a soporte una forma de encontrar el detalle; uno mal contado entrega la consulta, el archivo o el servidor que falló, o deja adivinar lo que no debería. En el módulo de endurecimiento viste la traza en una página web; aquí el problema es el contrato de errores de una API. Droguería Siemprevida te entrega ocho respuestas de error de su API móvil, capturadas por su equipo de calidad en preproducción, el registro de ese día y el borrador de su contrato de errores.Para las API existe un formato estándar de error: el detalle de problema para HTTP, publicado por la IETF como RFC 9457, que reemplazó al RFC 7807. Es un objeto JSON con tipo de contenido application/problem+json y unos pocos miembros: type identifica la clase de problema, title lo resume de forma estable, status repite el código HTTP, detail explica esta ocurrencia concreta y instance identifica esta ocurrencia. El propio estándar pide que detail ayude al cliente a corregir el problema, no a depurar el servidor, y advierte contra exponer trazas o detalles de la implementación.
La pieza que hace útil el error sin hacerlo peligroso es el identificador del incidente: el cliente lo recibe en instance, el registro lo guarda junto a la excepción completa, y soporte une los dos sin que el cliente vea nada interno.
Responde para continuar
En el formato de detalle de problema, ¿para qué sirve el miembro detail?
Ver pista de ayuda
Piensa en quién lee la respuesta: el cliente, no el equipo que mantiene el servidor.
Abre el laboratorio y lee respuestas-api.txt. Algunas capturas siguen el contrato; otras devuelven tal cual el mensaje de la librería que falló. El de la base de datos es el más generoso: dice qué restricción se violó y en qué tabla vive, y con eso cualquiera empieza a dibujar el modelo de datos de la tienda.
Responde para continuar
Una captura revela el nombre de una tabla de la base de datos. ¿Cuál? Escríbelo tal como aparece, sin el nombre del índice que lo acompaña.
Ver pista de ayuda
Busca el mensaje que empieza por SQLSTATE; el nombre de la tabla va antes del punto.
La captura del pago fallido es el ejemplo que el resto de la API debería seguir: el cliente sabe que no se le cobró, sabe qué hacer y tiene un código para soporte, y no ve nada de cómo está construida la tienda. Comprueba que el diseño funciona del otro lado: con el identificador de esa respuesta, busca en registro-aplicacion.txt qué pasó de verdad.
Responde para continuar
La captura del pago fallido solo le da al cliente un identificador del incidente. ¿Qué excepción lo produjo según el registro? Escribe su nombre.
Ver pista de ayuda
El identificador está en el miembro instance de la captura 5.
No todo lo que sobra en un error es un nombre de servidor. Dos respuestas distintas para dos situaciones que el cliente no debería poder separar también filtran información: quien prueba códigos al azar aprende cuáles existen. El punto 5 del contrato de Siemprevida lo prevé, y dos capturas del mismo servicio no lo cumplen.
Responde para continuar
¿Qué problema tienen juntas las capturas 3 y 4?
Ver pista de ayuda
Pregúntate qué aprende alguien que prueba muchos códigos de cupón distintos.
Para el informe hace falta el alcance: cuántas de las ocho respuestas no cumplen el punto 3 del contrato. Revisa cada captura y marca las que entregan al cliente algo de la construcción interna de la tienda: una consulta o un mensaje del motor de base de datos, una ruta de archivo, un nombre de servidor o el mensaje crudo de una librería.
Responde para continuar
¿Cuántas capturas devuelven al cliente algún detalle de la construcción interna de la tienda?
Ver pista de ayuda
Las capturas 3 y 4 cuentan algo de más, pero no sobre cómo está construida la tienda.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.