Le choix du style architectural de l'API dépend du type de consommateurs, du volume de données, des exigences en matière de rapidité de développement de l'interface et de scalabilité.
Exemple de contrôleur REST (Node.js/Express) :
app.get('/api/users/:id', function(req, res) { // ... res.json(user); });
Exemple de définition de service gRPC (protobuf) :
service UserService { rpc GetUser (UserRequest) returns (UserResponse); }
Exemple de requête GraphQL :
query { user(id: "123") { id name posts { title } } }
Caractéristiques clés :
Peut-on utiliser GraphQL pour n'importe quel API d'entreprise ?
Pas toujours ! GraphQL est bon pour des données agrégées complexes, mais pour des interfaces CRUD simples et une forte charge, REST est souvent plus simple et efficace.
gRPC est-il adapté pour les clients mobiles/web ?
Généralement non, gRPC nécessite le support de HTTP/2 et ne s'intègre pas avec les navigateurs sans proxy spéciaux, donc il est rarement utilisé sur le frontend.
L'API REST est-elle toujours plus facile à versionner que les autres ?
Pas forcément. Le versionnement de GraphQL se fait au niveau du schéma, tandis que REST le fait généralement par un changement d'URI ou d'en-têtes, ce qui n'est pas toujours pratique pour l'évolution d'un schéma de données complexe.