Quand vous comparez des applications de synchronisation de stock pour Shopify, vous voyez parfois sur les pages de présentation des formules comme « compatible GraphQL » ou « utilise la dernière API ». Sans formation d'ingénieur, on a tendance à les survoler. Pourtant, le fait que l'application utilise REST ou GraphQL en coulisses influe discrètement sur ce que vous ressentez devant l'écran.
Ce billet ne touche pas une ligne de code. Il rappelle simplement que l'API d'inventaire de Shopify existe en deux variantes — REST et GraphQL — et précise le caractère de chacune. Nous espérons que cela vous aidera à choisir une application en toute lucidité.
Vue d'ensemble de l'API d'inventaire de Shopify
Au préalable : Shopify met officiellement à disposition un mécanisme permettant aux applications externes de lire et d'écrire le stock. C'est la fameuse Admin API. Si une application tierce comme Sync Master peut réécrire le stock dans Shopify depuis un Google Sheets, c'est précisément grâce à cette API.
En interne, l'Admin API se décline en deux variantes. L'une, appelée REST, est utilisée de longue date. L'autre, appelée GraphQL, est relativement plus récente. Elles font globalement les mêmes choses, mais leur façon d'extraire les données et leur conception de l'efficacité diffèrent. Shopify a elle-même choisi de publier ses nouveautés d'abord côté GraphQL, et toute l'industrie migre dans cette direction.
Comment raisonnent REST et GraphQL
Expliquons la différence avec des images du quotidien.
REST = interroger par ressource
REST organise ses guichets par type de données : « les produits dans ce tiroir, les commandes dans celui-là, le stock dans celui d'à côté ». Demandez « les informations du produit dont l'ID est 123 » et vous recevez un paquet entier d'informations sur ce produit. Simple et lisible, mais si vous ne voulez que le nom et la quantité en stock, vous récupérez généralement aussi tout un fatras d'informations dont vous n'avez pas besoin.
GraphQL = récupérer uniquement les champs voulus, en un bloc
GraphQL part de l'idée que « vous pouvez préciser au moment de la requête exactement ce que vous voulez ». Vous pouvez dire « uniquement le nom, le stock et le SKU du produit 123, ventilés par emplacement » et obtenir exactement cela. De plus, vous pouvez ramener plusieurs types de données dans une seule requête. Le trafic s'allège et vous ne transportez pas d'informations inutiles.
Quel type d'application choisit quoi
Que choisissent réellement les applications tierces ? Tendance générale : plus une application est ancienne, plus elle a de chances d'être bâtie sur REST ; les applications récentes ou refondues en profondeur adoptent plus volontiers GraphQL. Comme Shopify livre les nouveautés d'inventaire d'abord côté GraphQL, les développeurs qui veulent accéder rapidement aux dernières fonctionnalités ont tendance à le choisir.
Cela ne signifie pas que « les applications REST sont vieilles et nulles ». Les applications REST déjà stabilisées en production restent des choix tout à fait fiables. Cela dit, si vous choisissez aujourd'hui une nouvelle application, celle qui revendique la compatibilité GraphQL a plus de chances de suivre les futurs ajouts de fonctionnalités.
Différences perceptibles côté utilisateur
Comment ces différences techniques se traduisent-elles pour celui qui utilise l'outil ? C'est la vraie question. Plusieurs points se ressentent concrètement.
- Durée de la synchronisation : grâce à un échange de données plus efficace, les applications GraphQL gagnent souvent en vitesse à mesure que le catalogue grossit
- Volume de catalogue géré : GraphQL peut traiter davantage dans une seule requête, donc reste souvent plus stable sur de très gros catalogues
- Rapidité d'intégration des nouveautés : comme Shopify lance d'abord côté GraphQL, la prise en charge des nouvelles fonctions d'inventaire (intégration de métachamps, contrôle fin des emplacements, etc.) arrive généralement plus tôt
- Comportement en cas d'erreur : GraphQL peut renvoyer des succès et des échecs partiels, ce qui améliore la visibilité sur le nombre d'enregistrements traités avec succès parmi N
Ce sont des tendances, pas des lois. Dans la pratique, l'implémentation prime : il existe des applications REST très rapides et des applications GraphQL lentes. Prenez donc « la compatibilité GraphQL » comme un signal parmi d'autres ; ce qui compte davantage, c'est de la tester à l'échelle de votre boutique et de vérifier que vitesse et précision répondent à vos besoins.
La différence entre REST et GraphQL ressemble, en quelque sorte, à la différence entre deux architectures moteur. Tout comme vous n'avez pas besoin de connaître chaque rouage du moteur pour choisir une voiture, vous n'avez pas à vous préoccuper des différences d'API au quotidien. Mais si vous vous êtes déjà demandé « pourquoi cette application est-elle si rapide ? » ou « pourquoi prend-elle en charge si vite les nouveautés ? », la réponse est là — et le savoir donne beaucoup plus d'aplomb à vos choix.