BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Articles Guide De Référence GraphQL : Création D'API Flexibles Et Compréhensibles

Guide De Référence GraphQL : Création D'API Flexibles Et Compréhensibles

Points Clés

  • GraphQL est à la fois un langage de requête open source pour une API et un environnement d'exécution côté serveur pour l'exécution de requêtes. Il permet l'utilisation d'un système de type que les développeurs définissent pour leurs données.
  • GraphQL devient rapidement une alternative populaire à REST et gRPC, en particulier pour exposer des données à la périphérie des systèmes
  • Les clients peuvent définir la structure des données requises avec GraphQL, qui peuvent être implémentées pour fournir une abstraction commune (schéma) entre le frontend et le backend
  • GraphQL a clairement traversé le gouffre de la diffusion de l'innovation, le seul débat dans le rapport sur les tendances de l'architecture et de la conception d'InfoQ 2020 étant la mesure dans laquelle il est largement adopté au sein des organisations qui ont de grands déploiements SOAP et REST API.
  • Il y a encore des innovations en cours dans cet espace, en particulier en ce qui concerne la mise à l'échelle et la fédération du schéma GraphQL, et le rendant omniprésent et polyvalent pour les grandes entreprises.

introduction

GraphQL est à la fois un langage de requête open source pour une API et un runtime côté serveur pour exécuter des requêtes. Il permet l'utilisation d'un système de types que les développeurs définissent pour leurs données.

GraphQL prend en charge la lecture, l'écriture et l'abonnement aux modifications apportées aux données, et les SDK et les serveurs sont disponibles pour plusieurs langages, notamment JavaScript, Python, Ruby, Java, C #, Go, Rust, PHP, etc.

GraphQL devient rapidement une alternative populaire à REST et gRPC, en particulier pour exposer des données à la périphérie des systèmes. Selon la page d'accueil de GraphQL, « GraphQL fournit une description complète et compréhensible des données de votre API, donne aux clients le pouvoir de demander exactement ce dont ils ont besoin et rien de plus, facilite l'évolution des API au fil du temps et permet des outils de développement puissants.»

 
Système de requête et de type GraphQL (Image fournie par Goodbye REST APIs. Hello GraphQL !)

GraphQL a été développé en interne par Facebook en 2012 avant d'être rendu public en 2015. Des projets similaires ont également co-évolué à l'époque, tels que Falcor de Netflix, mais sans voir autant d'adoption, en particulier en dehors de Netflix.

Le 7 novembre 2018, le projet GraphQL a été déplacé de Facebook vers la nouvelle Fondation GraphQL, hébergée par l'association à but non lucratif Linux Foundation.

Pourquoi utiliser GraphQL ?

GraphQL fournit une approche pour développer des API Web et est souvent comparé à REST, et dans une moindre mesure à gRPC-web et d'autres architectures de services Web.

GraphQL permet aux clients de définir la structure des données requises, qui peuvent être implémentées pour fournir une abstraction commune (schéma) entre le frontend et le backend, et aussi pour réduire la taille des payloads envoyées depuis le serveur. Selon l'entrée Wikipedia pour GraphQL, « la flexibilité et la richesse du langage de requête ajoutent également une complexité qui ne vaut peut-être pas la peine pour des API simples. »

Comme pour toutes les considérations architecturales, l'utilisation de GraphQL présente des avantages et des compromis inhérents.

Pourquoi devriez-vous prêter attention à GraphQL maintenant ?

GraphQL a clairement franchi le pas de la diffusion de l'innovation, avec le seul débat dans InfoQ 2020 Architecture and Design le rapport InfoQ 2020 sur les tendances en matière d'architecture et de conception étant de savoir dans quelle mesure il est adopté par les organisations qui ont déjà déployé un grand nombre d'API SOAP et REST.

Il y a encore de l'innovation dans cet espace, en particulier en ce qui concerne la mise à l'échelle et la fédération du schéma GraphQL, et pour le rendre omniprésent et polyvalent pour les grandes entreprises.

GraphQL sur le graphique InfoQ Architecture and Design Trends Report 2020.

Premiers pas avec GraphQL

Pour les architectes et les développeurs qui recherchent et explorent GraphQL, nous recommandons le contenu suivant :

Présentation de GraphQL dans votre pile technologique

Pour les équipes d'ingénierie qui explorent l'introduction et l'intégration de GraphQL dans leur pile technologique, nous recommandons ce qui suit :

Modélisation des données dans l'entreprise : comment GraphQL peut vous aider

La modélisation des données est un changement perpétuellement difficile, en particulier à grande échelle. GraphQL propose différentes options et implémentations que les approches REST ou SOA traditionnelles, avec un accent sur la modularité. L'approche précoce de « l'assemblage de schémas » a maintenant évolué vers la « fédération ».

Ce contenu est une bonne introduction aux avantages et aux défis de la modélisation de données avec GraphQL :

Études de cas GraphQL

Les études de cas GraphQL suivantes fournissent les meilleures pratiques et mettent en garde contre les « pièges » découverts par les premiers utilisateurs :

Cas d'utilisation avancé : la fédération GraphQL de Netflix

Netflix a été les premiers à adopter GraphQL et a récemment commencé à discuter publiquement de la manière dont il a mis à l'échelle sa mise en œuvre. Le contenu suivant fournit un aperçu plus approfondi de leur approche et des leçons apprises :

A propos de l'auteur

Daniel Bryant conduit le changement au sein des organisations et des technologies. Son expertise technique actuelle se concentre sur les outils "DevOps", les plateformes de cloud/containeurs et les implémentations de microservices. Daniel est un leader au sein de la London Java Community (LJC), contribue à plusieurs projets open source, écrit pour des sites web techniques réputés tels que InfoQ, DZone et Voxxed, et fait régulièrement des présentations lors de conférences internationales telles que QCon, JavaOne et Devoxx.

 

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT