Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Revisar 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.

0 de 5 · 0%

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/.

Inicia sesión para registrar tus puntos y progreso en el ranking.

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