💻 Développement

graphql-builder

Conception et implémentation de schémas et résolveurs GraphQL.

⚡ Installation & lancement en 1 commande

Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- graphql-builder --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } graphql-builder -Launch"

🚀 Déjà installé ?

claude "/graphql-builder"

Ou tapez /graphql-builder dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.

🔑 Déclencheurs automatiques

Le skill s'active automatiquement quand votre demande contient :

GraphQLschemaquerymutationsubscriptionresolverApolloHot Chocolate

📦 Installation manuelle

git clone https://github.com/khalilbenaz/claude-skills-collection.git cp -r claude-skills-collection/dev-skills/graphql-builder ~/.claude/skills/

Source : dev-skills/graphql-builder

📖 Manuel

GraphQL Builder

Workflow

  1. Design du schéma : Définir les types scalaires, objets, interfaces et unions ; concevoir les queries (lecture), mutations (écriture) et subscriptions (temps réel) ; créer les input types pour les mutations afin de garantir la validation côté serveur.
  2. Résolution efficace : Implémenter le pattern DataLoader pour éliminer le problème N+1 (batching des requêtes DB par identifiants) ; mettre en cache les résultats des DataLoaders dans le scope de la requête ; éviter les résolveurs qui font des appels en cascade.
  3. Pagination : Adopter le pattern Relay Connections (edges, node, cursor, pageInfo) pour une pagination cursor-based standardisée ; fournir aussi totalCount quand c'est nécessaire ; documenter les limites maximales.
  4. Authentification et autorisation : Protéger le schéma via directives custom (@auth, @hasRole), middleware de contexte (injection du user dans le contexte GraphQL), ou field-level resolvers avec vérification de permissions ; ne jamais exposer des champs sensibles sans contrôle.
  5. Error handling : Distinguer les erreurs techniques (exceptions non gérées) des erreurs métier ; utiliser les union types pour les erreurs métier (union CreateUserResult = User | EmailAlreadyExists | ValidationError) ; enrichir via extensions pour les codes d'erreur custom.
  6. Subscriptions et real-time : Implémenter les subscriptions via WebSocket (protocole graphql-ws) ou server-sent events ; utiliser un bus de messages (Redis Pub/Sub, in-memory EventEmitter) pour la diffusion multi-instance ; gérer proprement la déconnexion.
  7. Schema stitching ou federation : Pour les microservices, préférer Apollo Federation (sous-graphes avec @key, @extends, @external) plutôt que le stitching manuel ; définir clairement les boundaries de chaque sous-graphe.
  8. Performance : Analyser la complexité des queries (depth limiting, complexity scoring) pour prévenir les attaques par requêtes profondes ; implémenter les persisted queries (hash côté client) pour réduire la bande passante et améliorer la sécurité en production.

Règles