
Django & GraphQL
GraphQL avec Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, authentication, DataLoader, N+1 problem
1Qu'est-ce que GraphQL et quelle est sa principale différence avec REST ?
Qu'est-ce que GraphQL et quelle est sa principale différence avec REST ?
Réponse
GraphQL est un langage de requête pour API développé par Facebook. Contrairement à REST qui expose plusieurs endpoints retournant des structures de données fixes, GraphQL utilise un seul endpoint permettant au client de spécifier exactement les données dont il a besoin. Cela résout les problèmes de sur-fetching (recevoir trop de données) et sous-fetching (devoir faire plusieurs requêtes) courants avec REST.
2Quelles sont les deux principales librairies GraphQL disponibles pour Django ?
Quelles sont les deux principales librairies GraphQL disponibles pour Django ?
Réponse
Strawberry et Graphene-Django sont les deux principales librairies GraphQL pour Django. Graphene-Django est plus mature et largement adoptée, utilisant une syntaxe basée sur les classes. Strawberry est plus moderne, utilise les type hints Python natifs et offre une meilleure intégration avec les outils de typage. Strawberry est recommandée pour les nouveaux projets grâce à sa syntaxe plus pythonique et son support natif de async.
3Comment définir un type GraphQL simple avec Strawberry pour représenter un modèle Django User ?
Comment définir un type GraphQL simple avec Strawberry pour représenter un modèle Django User ?
Réponse
Avec Strawberry, on utilise le décorateur @strawberry.type sur une classe dataclass pour définir un type GraphQL. Les champs sont déclarés avec des type hints Python standards (str, int, etc.). Cette approche exploite le système de typage natif de Python, rendant le code plus lisible et permettant une meilleure intégration avec les IDE et outils de vérification de types comme mypy.
Qu'est-ce qu'un resolver dans GraphQL et quel est son rôle ?
Quelle est la différence entre une Query et une Mutation dans GraphQL ?
+21 questions d'entretien
Autres sujets d'entretien Django
Les bases de Python
Python orienté objet
Fondamentaux Django
Models Django - Bases
Vues Django
Templates Django
Formulaires Django
QuerySets avancés
Authentification Django
Middleware Django
Admin Django
Django REST Framework
Signaux Django
Upload de fichiers
Cache Django
Sessions Django
Email Django
Tests Django
Sécurité Django
Déploiement Django
ORM Django avancé
Performance Django
Django & Celery
Django Channels
Django & Docker
Django dans un écosystème Microservices
Commandes Django personnalisées
Internationalisation Django
Design Patterns Django
Django Async & ASGI
Settings & Configuration Production
Observabilité & Monitoring
Maîtrise Django pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement