Certains outils, processus et plates-formes hypod-up dans le monde du logiciel vont et viennent. Mais il y en a certains dont nous pouvons raisonnablement supposer, en fonction de leur adoption et de leurs mérites, qu’ils continueront à devenir un pilier des processus logiciels, des outils de développement et d’exploitation à court ou à long terme. Bon nombre de ces technologies relèveront probablement de la catégorie observabilité, sécurité et API. Dans l’espace API, beaucoup de travail et d’amélioration doivent être faits pour les rendre plus faciles à utiliser et à gérer, et surtout, pour devenir plus applicables à l’ensemble des besoins de développement d’applications backend et frontend et de gestion de bases de données. À cette fin, GraphQL mérite au moins une seconde.
GraphQL est défini comme un langage de requête pour les API et un environnement d’exécution côté serveur pour exécuter des requêtes à l’aide d’un système de type que vous définissez pour les données, conformément à la documentation GraphQL. Ses créateurs soulignent également que GraphQL n’est lié à aucune base de données ou moteur de stockage spécifique et est plutôt soutenu par votre code et vos données existants. Parmi ses avantages, les données GraphQL peuvent être chargées avec une seule requête, sans avoir à accéder à plusieurs URL différentes, ce qui reste le cas avec les API REST.
La conférence annuelle des utilisateurs de Hasura, HasuraCon’22, s’est tenue la semaine dernière, apparemment sur GraphQL, tandis que de nombreuses discussions ont couvert la gamme des nouvelles offres de support Hasura pour GraphQL. Les thèmes couvraient et discutaient de l’évolution de GaphicQL et de ce que nous pouvons nous attendre à voir à l’avenir.
Avec le nouveau SDK Hasura GraphQL Data Connector (GDC) d’Hasura annoncé lors de la conférence, Hasura affirme que les utilisateurs de GraphQL peuvent désormais se connecter à « tous les types de données » sources. Hasura Cloud Enterprise est désormais disponible sur AWS Marketplace et sur Google Cloud Platform, a annoncé la société.
Bien qu’il soit intéressant d’étendre l’automatisation et la compatibilité à davantage d’environnements cloud pour GraphQL, quelques conférences étaient axées sur les applications du monde réel du point de vue de l’utilisateur et sur la manière dont une couche Hasura avec GraphQL peut offrir des avantages intéressants dans le monde réel. Ces fonctionnalités sont décrites dans les discussions comme étant non seulement utiles pour le développeur backend et frontend, ainsi que pour les utilisateurs qui peuvent s’appuyer sur les fonctionnalités sans doute low-code de Hasura pour analyser et regrouper diverses analyses de sources de données disparates via GraphQL. API unique (plus d’informations ci-dessous).
Points de terminaison de données
Dans le discours d’ouverture, le PDG de Hasura, Tanmai Gopal, a bien décrit le contexte d’une API de données intégrée aux différents points de terminaison de données partagés avec une organisation et la périphérie, qu’il définit comme les interactions et l’expérience de l’utilisateur final d’une application. ou une logique qui s’appuie sur un point de terminaison de données ou des points de terminaison pour s’exécuter. Ce concept simple représente également une complexité croissante pour le développeur afin de créer “une expérience produit incroyable à la périphérie”. Les points de terminaison de données, le cas d’utilisation périphérique et l’API au milieu “sont hautement simultanés”, a déclaré Gopal.
Ces points de terminaison de données « hautement simultanés », les cas d’utilisation en périphérie et le trifecta d’API peuvent également fournir le cadre sous-jacent pour les analyses de rentabilisation. « La façon dont nous traitons avec des données centralisées et partagées et la façon dont les données partagées sont traitées entre plusieurs utilisateurs est la façon dont nous pensons à l’expérience du produit. C’est ainsi que nos utilisateurs finaux consomment le produit, qu’il s’agisse d’une application ou d’une API », a déclaré Gopal. “Ce sur quoi nous ne voulons pas nous concentrer, c’est ce travail lourd indifférencié que nous devons faire [between the data endpoints and edge-use case] — c’est là que l’API de données entre en jeu. »
Les nouvelles versions d’Hasura annoncées lors de la conférence reflètent la vision de la société centrée sur l’API GraphQL, hautement automatisée et simplifiée de la livraison d’applications basées sur les données. Selon la documentation d’Hasura, la spécification GDC et le SDK d’Hasura permettent aux développeurs d’étendre les capacités de l’API GraphQL d’Hasura sans attendre qu’Hasura prenne en charge nativement leurs sources de données. Alors que Hasura aidait auparavant à étendre GraphQL à plusieurs sources de données sans nécessiter de plug-ins, sa portée comprend désormais davantage de sources de données propriétaires ou héritées.
“Nous avons pour mission d’améliorer l’accès, nous devons donc aller là où se trouvent les données alors que nous continuons à étendre notre API à davantage de sources de données”, a déclaré Tirumarai Selvan, chef de produit chez Hasura, lors d’une conférence.
Cette capacité à fédérer des données accessibles avec une seule API GraphQL a plusieurs implications. En étant capable d’accéder et de connecter différentes bases de données qui ne sont “pas de la même saveur”, il est ainsi possible de combiner les bases de données PostgresQL et SQL Server auxquelles l’interface Hasura pour GraphQL peut accéder, a déclaré Praveen Durairaju, développeur-advocacy content manager, pour Hasura. . Il existe de nombreux cas d’utilisation qui montrent à quel point la fonctionnalité est facile à utiliser “sans modifier réellement le code sous-jacent”, a déclaré Durairaju.
Nouvelles fonctionnalités
Avec la fonctionnalité Join, il est possible de combiner des données entre deux serveurs GraphQL indépendants. Avec un identifiant commun, tel qu’un ID utilisateur, Hasura permet désormais de configurer de manière déclarative une relation entre les deux serveurs et la possibilité de lancer des requêtes pour récupérer des données entre les deux serveurs. Il est ainsi possible de joindre des données d’un serveur GraphQL à une table de base de données “et vice versa”, a déclaré Durairaju.
Les autres avantages communiqués par Hasura incluent :
- API Streaming Subscriptions pour permettre aux utilisateurs de créer des applications pour diffuser des données vers leurs clients par lots et mettre à jour les données en temps réel.
- Prise en charge des déclencheurs d’événements pour MS SQL Server, permettant aux utilisateurs de connecter des API de logique métier à Hasura pour intégrer une logique backend asynchrone dans leurs applications en appelant des webhooks sur des événements de table tels que l’insertion/la mise à jour/la suppression pour les sources de données SQL Server.
Hasura continuera également d’étendre sa portée dans le cloud. Suite à la disponibilité d’Hasura sur AWS Marketplace et sur Google Cloud, des bases de données sur d’autres services de fournisseurs de cloud seront bientôt disponibles. Alors que Vaishnavi GVS, un chef de produit Hasura, n’est pas sorti et a dit que les bases de données sur Microsoft Azure deviendraient bientôt accessibles avec Hasura, elle a déclaré “nous allons envisager de prendre en charge plus de fournisseurs de cloud et de nous étendre à plus de régions et nous aurons également plus d’intégrations et d’améliorations… pour les clients d’entreprise cloud.
Vous pouvez dire “code bas”
Une grande partie de ce que Hasura facilite avec GraphQL est que les non-ingénieurs et même les développeurs citoyens profitent de l’API GraphQL pour l’analyse de base de données, et même le développement backend dans certains cas.
Souvent, un développeur backend configurera GraphQL afin qu’un utilisateur non technique puisse utiliser l’API pour rendre les recherches de bases de données et les méta-analyses beaucoup plus simples à lancer. Reporters at the Marshall Project, un projet de journalisme non partisan et à but non lucratif, qui a été créé pour maintenir un sentiment d’urgence nationale dans le système de justice pénale américain, en est un exemple. Là, les journalistes s’appuient sur Hasura, GraphQL et d’autres outils pour vérifier les faits et recueillir des informations et des données pour des articles qui autrement impliqueraient des centaines d’heures (voire de jours) pour des articles impliquant plusieurs sources de données.
Les reporters du projet Marshal, par exemple, s’appuient fortement sur l’interface Hasura, GraphQL et d’autres outils de base de données pour aider le projet Testify. Au cours de son discours, Ilica Mahajan, qui est impliquée dans le projet Marshall alors qu’elle termine un double programme de maîtrise à Columbia en journalisme et en informatique, a décrit comment le projet test cherche à établir des modèles de justice au sein du système judiciaire du comté de Cuyahoga dans la région de Cleveland. Historiquement, lorsque les crimes ont écrit des histoires sur le système judiciaire, “cela a été en quelque sorte anecdotique avec peut-être quelques petits ensembles de données – mais nous voulions vraiment avoir une image plus large des choses et des tendances plus larges qui se produisaient dans un système judiciaire particulier”, Mahajan a dit.
Les données auxquelles le projet Testify a accès sont publiques, mais le site Web accessible au public où se trouvent les données est très complexe et peu convivial pour l’accès et l’analyse. De plus, les cellules ont besoin d’accéder aux données de nombreux accusés, chacun pouvant être impliqué dans différentes affaires judiciaires et faire l’objet de charges différentes devant les tribunaux pénaux. Les données sur les juges de la région sont également extraites et analysées.
Les reporters remplissent les informations pour Airtable, qui est un outil low-code pour le développement d’applications, afin que les données soient collectées pour un accès avec une API GraphQL. “Hasura nous aide à voir et à visualiser toutes ces données de conflit en un seul endroit”, a déclaré Mahajan.
Sous l’API, Mahajan a décrit comment les ensembles de données extraits sont transférés vers un compartiment Amazon S3. Après avoir analysé ces documents, Hasura est utilisé pour écrire dans les tables PostgreSQL et pour lire les fichiers de la table Airtable sur Amazon RDS. Hasura analyse ensuite toutes les données et les transfère dans Observable, qui est un environnement de bloc-notes JavaScript pour analyser ou visualiser les données. “Cela devient particulièrement utile une fois que nous avons toutes les données au même endroit pour, par exemple, trouver l’histoire”, afin, par exemple, de trouver des sources avec lesquelles parler, a déclaré Mahajan.
Travail en cours
Bien que les nouvelles fonctionnalités de Hasura et GraphQL et les cas d’utilisation intéressants couverts par la conférence soient méritoires, nous ne sommes encore qu’à l’aube de ce que GraphQL et les API, en général, peuvent offrir pour l’analyse et la visualisation des données à l’avenir.
“Il y a une quantité énorme, énorme de travail à faire pour réaliser cet avenir de pouvoir dire, ‘pouvons-nous nous concentrer uniquement sur les données centralisées, pouvons-nous nous concentrer uniquement sur la périphérie avec une API de données qui est automatisée pour toujours et à jamais ”, a déclaré Gopal. « Se diriger vers cet avenir demande beaucoup de travail. Nous avons fait des progrès aujourd’hui, mais il y a énormément de choses à faire.