Desarrollador Full-stack: pregunta de entrevista
¿Cómo mantienes alineados los contratos frontend y backend?
Mantén los contratos alineados con un esquema versionado como OpenAPI, genera o valida clientes, añade pruebas de contrato de consumidor y proveedor y despliega cambios compatibles antes de retirar campos antiguos.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
El contrato es un único artefacto, normalmente un esquema OpenAPI o GraphQL, propiedad del backend y versionado en el repositorio, del que el frontend genera sus tipos de cliente para que renombrar un campo falle en compilación y no en una sesión de usuario. Las pruebas de contrato dirigidas por el consumidor registran lo que usa cada frontend y corren contra el proveedor en CI, así que el backend no puede quitar ni cambiar esos campos sin romper la build. Los cambios se despliegan en orden expandir y luego contraer: añadir el campo nuevo, migrar consumidores y eliminar el viejo cuando su uso llega a cero.
Ejemplo
La app web genera tipos TypeScript desde openapi.json en cada build; cuando el backend renombró customer_name a customerName, la build del frontend falló de inmediato en lugar de mostrar nombres vacíos en producción. Una prueba Pact de la app móvil afirma que GET /orders devuelve status y total, así que un PR del backend que elimina total hace fallar el job de verificación del proveedor.
Errores frecuentes
- Escribir a mano tipos del frontend que se desvían de las respuestas reales.
- Desplegar un cambio incompatible del backend y el del frontend en el mismo momento y depender de que ambos salgan bien.
- Tratar el servidor simulado como el contrato y no verificarlo nunca contra el proveedor real.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.