Django

Django & GraphQL

GraphQL con Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, autenticación, DataLoader, problema N+1

24 preguntas de entrevista·
Senior
1

¿Qué es GraphQL y cuál es su principal diferencia con REST?

Respuesta

GraphQL es un lenguaje de consulta para APIs desarrollado por Facebook. A diferencia de REST, que expone múltiples endpoints que devuelven estructuras de datos fijas, GraphQL usa un único endpoint que permite al cliente especificar exactamente los datos que necesita. Esto resuelve los problemas de over-fetching (recibir demasiados datos) y under-fetching (tener que hacer múltiples solicitudes) comunes en REST.

2

¿Cuáles son las dos principales librerías GraphQL disponibles para Django?

Respuesta

Strawberry y Graphene-Django son las dos principales librerías GraphQL para Django. Graphene-Django es más madura y ampliamente adoptada, y usa una sintaxis basada en clases. Strawberry es más moderna, usa type hints nativos de Python y ofrece una mejor integración con las herramientas de tipado. Strawberry se recomienda para nuevos proyectos por su sintaxis más pythónica y su soporte nativo de async.

3

¿Cómo definir un tipo GraphQL simple con Strawberry para representar un modelo User de Django?

Respuesta

Con Strawberry, se usa el decorador @strawberry.type sobre una clase dataclass para definir un tipo GraphQL. Los campos se declaran con type hints estándar de Python (str, int, etc.). Este enfoque aprovecha el sistema de tipado nativo de Python, haciendo el código más legible y permitiendo una mejor integración con los IDE y herramientas de verificación de tipos como mypy.

4

¿Qué es un resolver en GraphQL y cuál es su rol?

5

¿Cuál es la diferencia entre una Query y una Mutation en GraphQL?

+21 preguntas de entrevista

Domina Django para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis