Django

Django & GraphQL

GraphQL avec Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, authentication, DataLoader, N+1 problem

24 questions d'entretien·
Senior
1

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.

2

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.

3

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.

4

Qu'est-ce qu'un resolver dans GraphQL et quel est son rôle ?

5

Quelle est la différence entre une Query et une Mutation dans GraphQL ?

+21 questions d'entretien

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