🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónRevisar los serializadores de un proyecto entero
5 tareas · 35 min · Principiante
Encontrar un caso suelto es fácil; asegurar que no queda ninguno exige método. Pulsoandino quiere la lista completa de lo que hay que revisar en sus tres repositorios. Te entregan los serializadores y las vistas de su API de clases en Django REST Framework, una respuesta guardada y la búsqueda de patrones que corrió su equipo de plataforma. Se arma el inventario como lo haría quien tiene que cerrar el tema.
Objetivo de la sala
Encontrar un caso suelto es fácil; asegurar que no queda ninguno exige método. Pulsoandino quiere la lista completa de lo que hay que revisar en sus tres repositorios. Te entregan los serializadores y las vistas de su API de clases en Django REST Framework, una respuesta guardada y la búsqueda de patrones que corrió su equipo de plataforma. Se arma el inventario como lo haría quien tiene que cerrar el tema.Un barrido empieza por las señales que cada framework deja en el código cuando el objeto se enlaza o se serializa sin elegir campos. En Django REST Framework, un serializador de modelo con fields = "__all__" toma todas las columnas; con exclude se convierte en una lista negada; con depth anida los objetos relacionados con todos sus campos. En Laravel, las señales son $request->all() o except hacia un modelo, $guarded (vacío o como lista negada) y forceFill. En JavaScript, copiar el cuerpo de la petición con Object.assign o con el operador de propagación.
Cada resultado se clasifica con tres preguntas: ¿la dirección es de entrada (escritura) o de salida (lectura)?, ¿quién llama a esa ruta?, ¿qué columnas tiene hoy el modelo? Un fields = "__all__" en una vista de solo lectura para personal interno pesa distinto que en una ruta pública o en una que escriben los socios.
Responde para continuar
¿Cuál de estas configuraciones de un serializador es la que no hay que anotar en el barrido?
Ver pista de ayuda
Solo una de las tres elige los campos uno por uno.
Abre el laboratorio, entra en la carpeta pulsoandino-proyecto y cruza serializers.py con views.py y con modelos.txt. Empieza por la salida: busca el serializador de una vista pública cuya lista negada se quedó corta cuando el modelo creció.
Responde para continuar
¿Qué serializador deja salir un dato de nómina en una ruta pública? Escribe su nombre de clase.
Ver pista de ayuda
Mira qué columna se añadió en septiembre y qué serializador no la conoce.
Ahora la entrada. Busca la vista en la que escriben los socios y el serializador que usa. Revisa en modelos.txt qué campo de ese modelo decide algo que solo debería decidir la pasarela.
Responde para continuar
¿Qué serializador, usado para escribir por los socios, acepta del cliente el campo que habilita el ingreso a la clase? Escribe su nombre de clase.
Ver pista de ayuda
Busca el serializador que toma todas las columnas del modelo.
Abre respuesta-comentarios.json. La lista de campos del serializador de comentarios es explícita, y aun así el autor sale con correo, fecha de nacimiento y deuda.
Responde para continuar
¿Por qué la respuesta de comentarios trae datos personales del autor si su lista de campos es explícita?
Ver pista de ayuda
La lista elige el campo autor, pero no qué trae el autor por dentro.
Lee busqueda-patrones.txt con el criterio del cliente: las pruebas y las semillas se anotan, pero no entran en la lista de revisión. Lo que queda es el inventario que se entrega, aunque algún resultado resulte inofensivo al revisarlo.
Responde para continuar
Aplicando el criterio del cliente, ¿cuántos resultados de la búsqueda entran en la lista de revisión?
Ver pista de ayuda
Descarta las rutas que pasan por tests/, test/ o database/seeders/.
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.