
Django & GraphQL
GraphQL con Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, autenticación, DataLoader, problema N+1
1¿Qué es GraphQL y cuál es su principal diferencia con REST?
¿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?
¿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?
¿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.
¿Qué es un resolver en GraphQL y cuál es su rol?
¿Cuál es la diferencia entre una Query y una Mutation en GraphQL?
+21 preguntas de entrevista
Otros temas de entrevista Django
Fundamentos de Python
Python orientado a objetos
Fundamentos de Django
Models Django - Fundamentos
Vistas de Django
Plantillas Django
Formularios Django
QuerySets avanzados
Autenticación en Django
Middleware de Django
Django Admin
Django REST Framework
Señales de Django
Carga de archivos
Caché de Django
Sesiones de Django
Email en Django
Testing en Django
Seguridad de Django
Despliegue de Django
Django ORM avanzado
Rendimiento de Django
Django & Celery
Django Channels
Django & Docker
Django en un ecosistema de microservicios
Comandos personalizados de Django
Internacionalización en Django
Patrones de Diseño en Django
Django Async y ASGI
Settings y configuración de producción
Observabilidad y monitoreo
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