🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónValidación de esquema en la entrada y en la salida
5 tareas · 35 min · Principiante
Validar contra el contrato es la forma más barata de rechazar lo que no debería llegar al código y de detener lo que no debería salir de él. Pero la pasarela solo valida lo que el esquema dice, y solo bloquea si alguien le pidió bloquear. Droguerías Tasajera activó la validación en su API de domicilios y te entrega los esquemas, la configuración del validador y un día de sus decisiones.
Objetivo de la sala
Validar contra el contrato es la forma más barata de rechazar lo que no debería llegar al código y de detener lo que no debería salir de él. Pero la pasarela solo valida lo que el esquema dice, y solo bloquea si alguien le pidió bloquear. Droguerías Tasajera activó la validación en su API de domicilios y te entrega los esquemas, la configuración del validador y un día de sus decisiones.Validar con un esquema es un modelo positivo: en lugar de buscar lo malo, se describe lo único que es aceptable y se rechaza todo lo demás. Un esquema bien escrito fija el tipo de cada propiedad, sus longitudes, sus rangos, la lista cerrada de valores cuando la hay, cuáles son obligatorias y, con additionalProperties: false, que no se acepte ninguna propiedad que no esté declarada. Desde la versión 3.1, los esquemas de OpenAPI son JSON Schema, y en JSON Schema lo que no se prohíbe se permite: un objeto sin esa palabra acepta cualquier propiedad extra.
La validación de entrada no reemplaza la codificación por contexto ni la autorización: un texto puede tener la longitud correcta y aun así terminar en una consulta mal construida. Lo que sí hace es reducir mucho lo que llega al código y cortar de raíz las propiedades que nadie esperaba.
Responde para continuar
Un esquema de objeto en OpenAPI 3.1 no dice nada sobre propiedades adicionales. ¿Qué pasa con una propiedad que no está declarada?
Ver pista de ayuda
Fíjate en la palabra que hay que escribir para prohibirlas.
Abre el laboratorio y lee domicilios-v1.yaml. Compara cómo están acotadas las propiedades de texto de la solicitud con las de la dirección. Hay una que no tiene ni longitud máxima, ni patrón, ni lista de valores, y el registro de validación muestra lo que llegó por ella.
Responde para continuar
¿Qué propiedad de texto de la solicitud de domicilio no tiene ningún límite en el esquema?
Ver pista de ayuda
Una de las peticiones aceptadas trae más de dieciocho mil caracteres en ese campo.
validacion.yaml dice que la pasarela rechaza propiedades no declaradas solo si el esquema lo pide. El esquema de la dirección lo pide; el de la solicitud no. Lee registro-validacion.txt: el validador anota en cada entrada las propiedades no declaradas que encontró.
Responde para continuar
¿Cuántas solicitudes de domicilio fueron aceptadas aunque traían al menos una propiedad no declarada?
Ver pista de ayuda
Cuenta solo las entradas aceptadas con la lista de no declaradas no vacía. La rechazada por la dirección no cuenta.
La validación de salida compara la respuesta del servicio con su esquema antes de entregarla. Configurada para bloquear, impide que salga un campo que nadie declaró; configurada para registrar, solo deja constancia mientras el dato llega al cliente. Lee qué modo eligió Tasajera y qué anotó el validador en las respuestas.
Responde para continuar
¿Qué propiedad no declarada salió en las respuestas de estado del domicilio? Escríbela tal como la anota el validador.
Ver pista de ayuda
Busca los avisos de salida, no las entradas.
Las propiedades que se colaron en la entrada no son inocentes: el costo del envío y la prioridad los decide Tasajera, no el cliente, así que si el servicio llegara a leerlas sería una asignación masiva. Y el teléfono personal del repartidor sale hacia cualquier cliente que consulte su domicilio. La corrección vive en dos sitios: el contrato y la configuración del validador.
Responde para continuar
¿Qué conjunto de cambios corrige los tres hallazgos de la API de domicilios?
Ver pista de ayuda
Hay un ajuste para cada hallazgo: uno sobre propiedades extra, uno sobre longitud y uno sobre la salida.
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.