GraphQL est devenu une technologie clé dans le domaine des API, avec un nombre croissant d’organisations adoptant cette nouvelle structure d’API dans leurs écosystèmes. GraphQL est souvent considéré comme un alternative aux API REST, qui existent depuis longtemps. Par rapport aux API REST (ou à d’autres spécifications d’API traditionnelles), GraphQL offre plus de flexibilité aux consommateurs d’API (tels que les développeurs d’applications) et offre de nombreux avantages, ainsi que de nouveaux défis pour le développement et le déploiement d’API.
J’ai récemment assisté à GraphQLConf 2023, la conférence GraphQL à San Francisco où des experts GraphQL et des utilisateurs du monde entier se sont réunis pour discuter de l’avenir de la technologie. Cette toute première GraphQLConf a été organisée par la Fondation GraphQL, qu’IBM est fière de sponsoriser. Je mettrai en évidence sept informations clés sur les tendances GraphQL pour les prochaines années, sur la base des leçons tirées de l’événement.
1. GraphQL à grande échelle
L’adoption de GraphQL parmi les entreprises s’est développée rapidement. Un rapport de Gartner® prédit que d’ici 2025, plus de 50 % des entreprises utiliseront GraphQL en production, contre moins de 10 % en 2021. Lors de GraphQLConf, il est devenu clair que la technologie est en passe de répondre à cette prédiction. La conférence réunissait des conférenciers et des participants d’entreprises telles que Pinterest, AWS, Meta, Salesforce, Netflix, Coinbase et Atlassian.
2. Gestion des API pour GraphQL
Semblable à d’autres spécifications API, GraphQL doit être associé à un logiciel de gestion d’API pour bénéficier du plus grand nombre d’avantages. GraphQL est souvent implémenté comme passerelle ou middleware vers plusieurs sources de données, ce qui signifie que les performances et la sécurité de l’API dépendent de ces sources en aval. Pour optimiser les performances de l’API GraphQL, vous devez utiliser une analyse des coûts de requête pour implémenter une limitation de débit basée sur les sources de données connectées. Les présentations à GraphQLConf ont expliqué comment l’observabilité et la limitation de débit jouent un rôle important dans la gestion des API pour GraphQL.
3. Sécurité GraphQL
La sécurité des API GraphQL devient encore plus critique maintenant que les entreprises ont commencé à exécuter GraphQL à grande échelle. Étant donné que la structure de GraphQL est différente des autres spécifications d’API, elle a ses propres besoins en matière de sécurité. Les vulnérabilités spécifiques à GraphQL telles que les problèmes de complexité et les fuites de schéma ont été mises en évidence lors de la conférence. Bien entendu, les menaces de sécurité qui s’appliquent aux spécifications API standard, telles que les injections et les erreurs de serveur, s’appliquent également aux API GraphQL et peuvent souvent être atténuées par des solutions de gestion d’API.
4. Développement déclaratif de l’API GraphQL SDL-first
Il existe deux approches distinctes pour créer des API GraphQL : « le code d’abord » et « le schéma d’abord ». Au cœur de chaque API GraphQL se trouve un schéma qui sert de système de types.
- Dans une approche « code first », le schéma serait généré à partir de la logique métier implémentée dans le framework utilisé pour créer l’API GraphQL.
- Dans l’approche « schéma d’abord », vous commenceriez par définir le schéma et par mapper ce schéma séparément à votre logique métier.
Une nouvelle approche émergente est appelée « SDL-first » (Schema Definition Language), où au lieu de séparer le schéma et la logique métier, vous définissez les deux directement dans le schéma GraphQL. J’ai discuté de cette approche déclarative SDL-first dans mon exposé à GraphQLConf.
5. Livraison incrémentielle de données en streaming
Le streaming de données dans GraphQL a longtemps été négligé, mais devient de plus en plus pertinent à mesure que GraphQL est plus largement adopté. Les données en temps réel dans GraphQL sont implémentées à l’aide d’un type d’opération appelé « Abonnement », mais les données en streaming ont des besoins différents. Pour le streaming de données, deux nouvelles directives seront introduites et intégrées à la spécification GraphQL, appelées « @stream » et « @defer ». En ajoutant ces nouvelles directives, GraphQL sera capable de gérer des situations plus complexes où une livraison de données incrémentielle est nécessaire. Ce développement devrait rendre GraphQL plus compatible avec les sources de données asynchrones ou basées sur des événements.
6. Spécification ouverte pour la fédération GraphQL
La fédération GraphQL est utilisée pour regrouper plusieurs API GraphQL afin de consommer toutes les données d’une seule API. Cela améliorera la convivialité et la découvrabilité de tous les services au sein de l’organisation. Souvent, la fédération exigera que chaque service en aval soit une API GraphQL, mais certaines solutions GraphQL vous permettent de fédérer chaque source de données dans une seule API GraphQL. Jusqu’à présent, la fédération GraphQL dépendait des exigences spécifiques du fournisseur, ce qui a conduit à de nombreuses implémentations différentes.
Lors de GraphQLConf, il a été annoncé qu’IBM avait uni ses efforts avec d’autres sociétés leaders dans le domaine des API pour développer une spécification ouverte pour la fédération GraphQL dans le cadre de la Fondation GraphQL.
7. GraphQL et intelligence artificielle
À mesure que l’intelligence artificielle (IA) transforme la façon dont les développeurs écrivent et interagissent avec le code, elle offre également des défis et des opportunités pour GraphQL. Par exemple, comment les développeurs vont-ils créer des API GraphQL dans un monde dominé par l’IA ? Comment l’IA peut-elle aider à trouver et à prévenir les failles de sécurité pour GraphQL ?
Lors de GraphQLConf et d’IBM TechXchange, IBM Fellow et CTO Anant Jhingran ont présenté le rôle de GraphQL dans l’intégration de l’IA et des API. Ce discours d’IBM TechXchange montre à quoi ressemble la combinaison de GraphQL et de l’IA.
Apprendre encore plus
Avec un nombre croissant d’organisations non seulement expérimentant GraphQL, mais commençant à le mettre en œuvre à grande échelle, l’écosystème se développe rapidement. Chez IBM, nous aidons les organisations de toutes tailles dans leur parcours GraphQL en facilitant le développement rapide d’API GraphQL au niveau de la production.
Apprenez-en davantage sur les fonctionnalités GraphQL d’IBM API Connect, notamment sur la façon de démarrer gratuitement.