Elige GraphQL cuando varios clientes distintos necesitan formas distintas de los mismos datos conectados y estás harto de traer datos de más o de publicar un endpoint por pantalla. Elige REST cuando la superficie es pequeña, la caché HTTP importa o los consumidores son máquinas y no pantallas. GraphQL no elimina la complejidad; la mueve de la proliferación de endpoints a la profundidad de resolvers, los límites de coste de consulta y una caché de la que ahora eres responsable.
Por qué lo preguntan los entrevistadores
Esto comprueba si eliges tecnología a partir de restricciones o de modas. El entrevistador quiere oír una compensación real, sobre todo alrededor de la caché y del coste de consulta, porque son los dos sitios donde los equipos de GraphQL se hacen daño a los seis meses. Quien puede defender ambos lados y luego comprometerse suena a alguien a quien es seguro darle decisiones de arquitectura; quien solo enumera beneficios de GraphQL, no.
Cómo estructurar tu respuesta
- Enuncia la condición que hace que GraphQL merezca la pena.
- Enuncia la condición que hace de REST la mejor opción por defecto.
- Nombra los costes operativos que añade GraphQL.
- Aterriza en una recomendación para el contexto que te dieron.
Ejemplo de respuesta
Mi factor decisivo es la diversidad de clientes. Si hay un solo cliente web y los endpoints mapean limpiamente a pantallas, REST es menos maquinaria y te llevas gratis la caché HTTP, el comportamiento de CDN y poder depurar con curl. En cuanto tienes una app web, una app móvil y una integración de socios queriendo cada una porciones distintas del mismo grafo, REST se convierte o en cincuenta endpoints a medida o en respuestas gordas que los usuarios móviles pagan con sus datos. Ahí es cuando GraphQL compensa. Lo que me aseguro de que el equipo sepa de antemano es lo que viene con ello. Necesitas límites de profundidad y de coste de consulta o una sola consulta anidada puede machacar la base de datos, necesitas batching estilo dataloader o los resolvers producen consultas N más uno por defecto, y la caché HTTP casi deja de funcionar porque todo es un POST a una única URL, así que cacheas a nivel de resolver o de entidad. En un producto de tamaño medio yo honestamente empezaría con REST y añadiría GraphQL solo cuando aparezca un segundo cliente muy distinto.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Cómo detendrías una consulta maliciosa profundamente anidada?
- ¿Cómo gestionas la caché en GraphQL dado que todo es un endpoint?
- ¿Cómo versionas un esquema de GraphQL sin romper a los clientes?
Más preguntas para Desarrollador full stack
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas