Ruby on Rails

GraphQL avec Rails

graphql-ruby gem, types, queries, mutations, resolvers, N+1 queries, batching

20 questions d'entretien·
Senior
1

Quelle gem est la plus utilisée pour implémenter GraphQL dans une application Rails ?

Réponse

La gem graphql-ruby (souvent appelée simplement graphql) est la solution de référence pour implémenter GraphQL dans Rails. Elle offre un DSL Ruby expressif pour définir les types, queries et mutations, ainsi qu'une intégration native avec Rails via les routes et controllers. Maintenue activement par Robert Mosolgo, elle est utilisée par des entreprises comme GitHub et Shopify en production.

2

Comment définir un type Object dans graphql-ruby pour représenter un modèle User ?

Réponse

Un type Object dans graphql-ruby hérite de Types::BaseObject et expose les champs via la méthode field. Chaque champ spécifie son nom, son type GraphQL (String, Int, ID, etc.) et sa nullabilité. Cette approche déclarative permet de contrôler précisément quelles données du modèle sont exposées via l'API GraphQL, assurant une séparation claire entre le modèle ActiveRecord et sa représentation GraphQL.

3

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

Réponse

Les Queries sont utilisées pour lire des données (opérations GET) tandis que les Mutations sont utilisées pour modifier des données (création, mise à jour, suppression). Par convention GraphQL, les queries sont idempotentes et peuvent être exécutées en parallèle, alors que les mutations sont exécutées séquentiellement pour garantir l'ordre des effets de bord. Cette distinction est fondamentale pour une API GraphQL bien conçue.

4

Comment déclarer un champ avec des arguments dans un type Query graphql-ruby ?

5

Quel problème majeur de performance survient fréquemment avec GraphQL et les associations ActiveRecord ?

+17 questions d'entretien

Maîtrise Ruby on Rails pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement