Initial vault setup
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: GraphQL
|
||||
created: 2026-06-06
|
||||
updated: 2026-06-06
|
||||
type: concept
|
||||
tags: [tech, protocol, web]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [synthesized]
|
||||
---
|
||||
# 💻 ◈ GraphQL
|
||||
|
||||
## Définition Courte
|
||||
Langage de requête pour APIs créé par Facebook (2012, open-sourcé en 2015) permettant au client de demander **exactement** les données dont il a besoin, en une seule requête.
|
||||
|
||||
## Explication Détaillée
|
||||
Contrairement à REST où le serveur définit la forme des réponses, GraphQL inverse la donne : le client écrit une requête qui spécifie les champs. Un endpoint unique (`/graphql`) sert toutes les demandes.
|
||||
|
||||
**Avantages** : évite le sur-fetching et le under-fetching, une seule requête pour des données multiples, schéma typé fort (introspection).
|
||||
**Inconvénients** : complexité côté serveur (resolvers, N+1 queries), caching HTTP classique cassé, rate limiting plus complexe.
|
||||
|
||||
## Cas d'Usage
|
||||
- APIs avec des vues très variées (mobile + web + desktop).
|
||||
- Données fortement relationnelles (réseau social, e-commerce).
|
||||
- Frontend découplé d'un backend existant.
|
||||
|
||||
## Outils Liés
|
||||
- **Serveurs** : Apollo Server, Hasura, Graphene, Mercurius.
|
||||
- **Clients** : Apollo Client, Relay, urql.
|
||||
- **Federation** : Apollo Federation, GraphQL Mesh.
|
||||
|
||||
## Pages Liées
|
||||
- [[api-rest]]
|
||||
- [[concepts-web]]
|
||||
|
||||
## Questions Ouvertes
|
||||
- La complexité de GraphQL est-elle justifiée pour des apps simples ?
|
||||
- Comment gérer l'auth fine par champ avec GraphQL ?
|
||||
Reference in New Issue
Block a user