Le GraphQL : des usages qui s’étendent !

Le GraphQL : des usages qui s’étendent !

10 août 2023

– 5 minutes de lecture

Le GraphQL : des usages qui s’étendent !

Erik Zanga

Manager Architecture

Le GraphQL, technologie introduite il y a maintenant une dizaine d’années, permet de changer les paradigmes de l’API. Pour une présentation et une analyse plus précise, je vous invite à consulter notre précédent article écrit par Erik : https://www.rhapsodiesconseil.fr/api-graphql-on-casse-encore-tout-on-recommence/

Qu’en est-il aujourd’hui, le GraphQL est-il réellement une alternative concrète aux APIs standard ?

Mais déjà, qu’est-ce que le GraphQL ?

Le GraphQL se définit par la mise à disposition d’une interface de “requêtage” qui s’appuie sur les mêmes technologies d’intégration / les mêmes protocoles utilisée par les API REST.

Ici, nous restons sur le protocole HTTP et par un payload de retour (préférablement au format JSON) mais la différence principale du GraphQL, pour le client, repose sur le contrat d’interface.

Le contrat d’interface façon GraphQL devient variable, tout comme la réponse. En effet, dans la requête nous pouvons spécifier ce que nous souhaitons recevoir exactement dans la réponse.

Nous mettons ainsi le doigt sur un gros avantage de cette interface GraphQL qui, par essence, va grandement diminuer le “overfetching et le “underfetching” (comprendre ici le fait de récupérer trop peu ou au contraire trop d’informations jugées inutiles dans le contexte) d’API

Autre avantage, ce besoin en données spécifiques pourra être différent à chaque appel et donc permettre une grande flexibilité d’usages à moindre effort.

Le GraphQL s’est fait sa place !

A l’époque de l’écriture de notre premier article, le GraphQL commençait à s’introduire dans certains cas d’usage, très souvent en mode POC et découverte, avec un concept attrayant mais sans preuve réelle de plus value.

Aujourd’hui nous observons une vraie adhésion à ce nouveau mode d’interfaçage, bien que nous en constatons encore des points d’amélioration.

Ce qui est intéressant à remarquer est qu’il se développe sur des métiers très variés. Non seulement au niveau des éditeurs de logiciels mais également dans le cadre de développements spécifiques, de plateformes dédiées.

Les usages à date : quelques exemples

Netflix, qui utilise le GraphQL pour unifier les accès aux différentes APIs.Dans le retail, Zalando, pour récupérer les informations sur les différents produits et pour gérer les consentements.MonEspaceSanté, le service lancé par l’ANS en début d’année, et qui effectue de requêtes GraphQL à partir du navigateur.

Le GraphQL comme réponse à un besoin d’uniformisation ?

Avant la naissance du GraphQL, le besoin d’uniformisation de ce type d’interaction était dans la ligne de mire de certains acteurs. Aujourd’hui le GraphQL peut apporter une réponse concrète et standardisée à ces problématiques.

Deux exemples d’envergure : 

Microsoft : Microsoft a par le passé essayé de fournir des APIs “flexibles” pour adresser certains cas d’usage. Cette tentative s’est matérialisée par la création de l’OData et de l’API Microsoft Graph. 

Ne vous trompez pas, l’objectif reste similaire mais l’approche est, à ce stade, différente. Dans une logique d’uniformisation et standardisation, nous voyons difficilement Microsoft s’affranchir d’une réflexion autour du GraphQL pour atteindre ces objectifs.

Salesforce : Salesforce propose également depuis plusieurs années, une API bas niveau qui pourrait, par ses caractéristiques et son besoin de flexibilité, être adaptée à la technologie GraphQL.

Constat actuel sur les usages du GraphQL

Quand nous regardons les cas d’utilisation de GraphQL, nous pouvons constater qu’il est majoritairement utilisé côté Front-end. 

En lien avec ce cas d’utilisation, nous observons également que le GraphQL est souvent vu comme un agrégateur d’API, et pas comme un moyen de requêtage directement lié à une vision pure données. 

Mais pourquoi ce type d’usage ?

Nous listons trois arguments principaux pour expliquer la prédominance de ce type de cas d’usage.

  1. La restitution de format est très adaptée au monde du web : une réponse simple, toujours vraie et personnalisable ; le protocole HTTP et des concepts proches des APIs REST, le GraphQL s’adapte très bien aux couches front.
  1. Chaque API derrière GraphQL gère son propre périmètre, si nous faisons la correspondance avec les architectures DDD (Domain-Driven Design), nous pouvons affirmer que l’API bas niveau adresse un domaine particulier, alors que le GraphQL est là pour pouvoir “mixer” ces différents concepts et donner une vision un peu plus flexible et adaptée à chaque cas d’usage. Dans ce cas nous allons faire de l’overfetching sur les couches bas niveaux, et faire un focus utilisation au niveau de la partie frontale.
  1. Le cache, éternelle question autour du GraphQL. Dans ce cas d’usage le cache reste possible au niveau des APIs de bas niveau, qui iront donc moins solliciter les bases de données, alors que sur la couche GraphQL, de par sa variabilité de réponse, nous en avons peut-être moins besoin. Pour rappel, le cache sur une requête GraphQL, bien que possible, devient naturellement plus complexe à gérer et donc perd un peu de son intérêt. 

Pourquoi ne faut-il pas limiter le GraphQL à ces usages ?

Pour nous, c’est notre conviction, le GraphQL a de nombreux atouts et doit se développer sur ces usages de prédilection, mais pas que !

UN ARGUMENTAIRE FORT : L’ACCÉLÉRATION DE LA CONCEPTION !

Un des grands atouts de la mise en place d’une API GraphQL reste le côté, si vous m’autorisez le terme, “parfois pénible” de la définition des API Rest : des discussions infinies entre le métier et l’informatique pour définir ce dont nous avons besoin, le découpage, etc.

Une API GraphQL par définition n’a pas une structure ou un périmètre de données définis, mais s’adapte à son utilisateur.

Le GraphQL comme moyen d’accélérer les développements ? 

UNE DISTINCTION CLAIRE : ATTENTION AUX CAS D’USAGE !

Nous ne visons certainement pas tous les cas d’usages, mais l’objectif ici est de casser un peu certains mythes.

Si utiliser des mutations (en gros l’équivalent de l’écriture) intriquées, nous l’avouons, peut être très complexe, dans les cas de requêtage de bases de données ayant comme objectif principal l’exposition en consultation, nous disons “pourquoi pas !”. 

Vous auriez probablement reconnu le pattern CQRS, avec, par exemple, une Vision 360 Client qui expose les informations avec une API GraphQL.

CÔTÉ TECHNIQUE

Les améliorations dans la gestion des caches, ces dernières années, permettent de gérer ce sujet, tout en restant plus complexe qu’avec une API REST standard. 

Attention aux autorisations

Nous n’allons pas nous attarder sur ce sujet, que nous avons déjà traité dans notre précédent article (que nous vous invitons à parcourir ici), mais nous souhaitons le rappeler car il est crucial et extrêmement critique. 

Si nous souhaitons traiter les sujets d’accès à la donnée avec une API GraphQL, une logique RBAC avec rôles et droits définis au niveau de la donnée (matrice d’habilitations rôles / droits proche de la donnée elle même) nous semble à ce stade la meilleure solution : N’AUTORISONS PAS L’ACCÈS UNIQUEMENT AU NIVEAU DE L’API, MAIS ALLONS AU NIVEAU DATA !

Conclusion

La technologie continue de s’affirmer, un standard semble se définir et s’étoffe de plus en plus. Dans un monde API qui se complexifie de jour en jour, les enjeux autour de la rationalisation et de l’optimisation des usages API restent au cœur des débats sans pour autant trouver de solution directe et efficace via la technologie REST. Et c’est encore plus vrai quand le besoin de base n’est pas clairement défini…

Le dynamisme apporté par le GraphQL, dans certains cas de figure, permet de simplifier ces discussions en apportant des réponses cohérentes avec le besoin.

Ce n’est pas une solution magique faite pour tous les usages, mais une réelle alternative à considérer dans les conceptions API.

Et vous ? Avez-vous pris en considération cette alternative pour vos réflexions API ?

Ne vous en faites pas, il n’est pas trop tard, parlons-en, ce qui ressortira de nos discussions pourrait vous surprendre.

Pilotage-et-coordination-d’un-projet-transverse

Comment maitriser le pilotage de vos projets & produits ?

Comment maitriser le pilotage de vos projets & produits ?

25 juillet 2023

– 3 minutes de lecture

Agilité, Projets & Produits

Fanny Bobeau

Team Leader Pilotage Projets Produits

Nous vous accompagnons dans le pilotage de vos projets & produits !

Comment rendre plus performant votre gestion des produits et projets ?

Notre approche se met en œuvre sur 3 niveaux :

Méthodologique
Stratégique
Opérationnel

Nous accompagnons vos collaborateurs vers plus de maîtrise, plus de confiance, plus d’autonomie.

accompagnement-pilotage
projet-agile
cible-produits
3-Axes-projets
Valeur-projets
application-stratégie
identifier-besoins
expertise-projet-produit
innovation-maitrise
culture-confiance
accompagnement-pilotage
projet-agile
cible-produits
3-Axes-projets
Valeur-projets
application-stratégie
identifier-besoins
expertise-projet-produit
innovation-maitrise
culture-confiance

Les autres articles qui peuvent vous intéresser 


montee-competences-agiles-equipe

Qui sommes nous ?

Qui sommes nous ?

25 juillet 2023

– 3 minutes de lecture

Bastien Gesland

Chargé Marketing & Communication

Salut, nous c’est Rhapsodies Conseil !

La localisation a aussi toute son importance lorsque l’on recherche une nouvelle opportunité professionnelle ​

À 2 pas de la gare Saint-Lazare, nos locaux sont idéalement situés

Tout près des salles de sport ​
d’un large choix de restaurants
des centres commerciaux ​
et des bars pour les afterworks

Tout ça avec un passe Navigo pris en charge à 100%

Si vous voulez voir nos locaux par vous-même
Postulez et nous nous ferons un plaisir de vous accueillir pour discuter de votre projet professionnel

qui-sommes-nous
Locaux-agréables
avantages-économiques
Avantages-tickets-restau
emplacement-centre
convivialité
qui-sommes-nous
Locaux-agréables
avantages-économiques
Avantages-tickets-restau
emplacement-centre
convivialité
Architecture-Entreprise-Agilite-Les-formations-Architecte-Agile

Quoi de nouveau dans la version 6 de SAFe pour l’architecte solution?

Quoi de nouveau dans la version 6 de SAFe pour l’architecte solution?

25 juillet 2023

– 4 minutes de lecture

Architecture

Thomas Jardinet

Manager Architecture

Salomé Culis

Consultante Architecture

Cet article est le deuxième d’une série présentant les évolutions des rôles des différents architectes dans la nouvelle version du framework SAFe. 

Après avoir étudié le System Architect, nous allons donc voir en détail les différences pour le Solution Architect avec la précédente version de SAFe.

Une position de “pivot” de l’architecture 

Le Solution Architect, positionné entre l’Entreprise Architect et le System Architect, a cela de de particulier qu’il est un réel pivot d’architecture : 

Il n’est pas pour autant un simple passe-plat, et encore moins une boîte mail générique, mais un acteur qui doit insuffler une direction technologique à l’ensemble du SI.

Il définit ainsi une vision technique, qu’il définit, cadre, met en place et partage. C’est par exemple à lui d’identifier les futures technologies à mettre en place, et à les instancier en les industrialisant.

Mais revenons un peu à ce rôle de pivot. Il est en effet extrêmement marquant pour moi de voir une citation du livre de Donella H. Meadows “Thinking in Systems”: 

“You think that because you understand ‘one’ that you must therefore understand ‘two’ because one and one make two. But you forget that you must also understand ‘and.’ “

Cela ne vous parle peut-être pas, mais cette phrase est une très bonne synthèse (certes très raccourcie) de la théorie des Systèmes développée par l’autrice et son mari. Pensée systémique qui influença l’émergence de l’agilité, en expliquant que la complexité des systèmes se mesure dans le nombre d’acteurs et de leurs interactions.

Théorie des systèmes qui m’est personnellement très chère, considérant à titre personnel comme faisant partie de ma liste de livres à lire absolument. Cette théorie apporte en effet une grille de lecture très intéressante de l’environnement qui nous entoure, en cela qu’elle explique que nous sommes tous liés à ce qui nous entoure, et que nous réagissons par rapport à ce qui nous entoure. N’ayant pas toute la sagacité de ses penseurs, je vous laisserais creuser vous-même cette théorie qui inspire fortement entre autres les travaux du GIEC.

Et cerise sur le gâteau pour moi, certe déjà présente dans la version 5 du framework Safe, nous retrouvons l’idée de “démarche inverse de Conway”, qui consiste à calquer l’organisation sur l’architecture souhaitée, et non l’inverse. Démarche qui ferait de l’Architecte Solution un Architecte d’Entreprise qui s’ignore? Néanmoins, on retiendra que cette démarche inverse de conway fonctionne de manière plus fluide dans une organisation réellement agile et se voulant fluide, comme le recherche le framework Safe.

Et comme cette position d’architecte pivot de solution mais aussi de l’organisation ne provient pas non plus de nulle part, nous allons nous entâcher d’abord à réexpliciter son rôle.

Les responsabilités clés de l’architecte solution

Si nous devions chercher à être synthétique, nous pourrions dire que l’architecte solution est l’architecte “support” de l’Entreprise Architect en définissant avec lui la roadmap solution. 

Roadmap solution qui est aussi défini en support avec le System Architect, mais lui en apportant des facilitations, des enablers, et le déchargeant des contingences techniques transverses.

Ainsi les différentes responsabilités du Solution Architect sont les suivantes : 

Les nouvelles relations du Solution Architect

Le rôle du Solution Architect dans la version 5 était peut-être réductrice. En effet il était auparavant quasiment aggloméré avec les architectes systèmes (vision assez réductrice à mes yeux, comme si un architecte solution ou un architecte system était la même chose). Il n’avait ainsi que des échanges avec l’équipe de Solution Management.

De cette modélisation bi-latérale du rôle du solution architect, la version 6 du framework Safe jette cela par la fenêtre pour le remplacer par un rôle de pivot de 4 équipes distinctes : 

,

Le tout bien évidemment dans une logique de collaboration, et non d’une simple logique purement top-down ou bottom-up.

Si ces sujets vous intéressent…

Pour plus d’informations sur ces sujets et sur le rôle d’architecte dans un environnement agile, n’hésitez pas à aller voir notre série d’articles sur l’architecture et l’agilité.

Les articles 1 et 2 peuvent en particulier se révéler utiles : 

Et évidemment, je ne peux que vous conseiller la lecture du livre mis en référence par le framework safe 6

Les points clés pour la réversibilité de vos contrats d’infogérance

Les points clés pour la réversibilité de vos contrats d'infogérance

24 juillet 2023

– 3 minutes de lecture

Transition & Transformation

Céline Touchard

Directrice Expérience Utilisateur & Sourcing

Les 5 points clésà anticiper pour la réversibilité de vos contrats d’infogérance

Vous êtes sur le point de lancer la transition de votre nouveau contrat d’infogérance et aucun plan de réversibilité n’a été formalisé ?

C’est une erreur qui risque de vous faire perdre gros…

C’est dès votre transition qu’il faut penser à votre plan de réversibilité futur

Frederic vous présente les 5 points clés à prendre en compte pour la rédaction du plan de réversibilité.

Nous vous accompagnons au travers d’une offre d’audit de réversibilité de votre contrat d’infogérance.

transformation

Les premiers pas pour diminuer l’empreinte environnementale de votre SI

Les premiers pas pour diminuer l'empreinte environnementale de votre SI

24 juillet 2023

– 3 minutes de lecture

Jean-Baptiste Piccirillo

Manager Transformation Data

Les premiers pas pour diminuer l’empreinte environnementale de votre SI

Vous travaillez sur la réduction de l’empreinte carbone de votre SI ?

Les deux axes clés de réduction sont la Sobriété et l’Optimisation

Notre matrice propose un cadre pour construire une vision claire sur l’équilibre entre la valeur pour votre organisation et l’impact environnemental de vos assets numériques (services IT, applications, composants d’infrastructures, …)

L’Optimisation
Elle permet certes de réduire dans certains cas l’empreinte environnementale / carbone
Mais il faut prendre garde qu’elle ne mène pas vers plus d’effets rebonds : « Comme c’est plus efficace, et plus bas carbone, alors on peut en rajouter tant qu’on veut ! »
Non !

Il faut donc être proactif pour travailler l’élimination et l’évitement du superflu en continu.
C’est le deuxième axe.

La Sobriété
Sachez abandonner tous assets et projets Luxueux, Excessifs, Superflus, voire parfois Irrationnels…

Nous partagerons régulièrement dans les prochaines semaines des leviers et exemples concrets autour des axes de Sobriété et d’Optimisation

Numérique-durable
Numérique-durable
Numérique-durable
Diminuer-empreinte
Diminuer-empreinte
Diminuer-empreinte
Diminuer-empreinte
Numérique-durable
Numérique-durable
Numérique-durable
Diminuer-empreinte
Diminuer-empreinte
Diminuer-empreinte
Diminuer-empreinte

Les autres articles qui peuvent vous intéresser