Cliento Logo
Blogue
Services
Valerie Tremblay

Valerie Tremblay

Moins de code de collage avec les resolvers JavaScript pour Appsync

Cover Image for Moins de code de collage avec les resolvers JavaScript pour Appsync

Réduire le nombre de lignes de code n'est pas toujours synonyme d'amélioration !

Nous avons tous rencontré des développeurs qui cherchent à prouver leurs connaissances en écrivant des fonctions complexes en une seule instruction illisible !

Notre objectif doit plutôt être de simplifier notre travail et de le rendre facile à maintenir. Si nous pouvons obtenir les mêmes résultats fonctionnels avec du code clair et concis, nous nous plaçons dans une meilleure position pour l'avenir.

Cet article fait partie d'une série visant à montrer comment réduire le code à non-valeur ajoutée en utilisant les capacités d'AWS. Vous pouvez consulter Le Cloud pour réduire le code à non-valeur ajoutée nécessaire pour l'introduction.

AppSync

Appsync, un service AWS, permet de connecter votre API GraphQL à différentes sources de données. Cette liaison peut être établie avec une Lambda ou des « resolvers » pour une intégration directe.

Jusqu'en novembre 2022, l'écriture des resolvers nécessitait VTL (Apache Velocity Template), un langage peu connu et peu apprécié en raison de sa syntaxe particulière. Heureusement, AWS a récemment annoncé la possibilité d'utiliser JavaScript pour rédiger ce code de collage, améliorant ainsi l'expérience des développeurs.

Comparaison des différents types d'intégration

Pour une API simple, la question est de savoir quelle option offre la meilleure performance, le coût le plus faible et la plus grande clarté, avec un minimum de code.

Pour trouver la réponse à cette question, vous pouvez consulter les sources de cette expérience sur GitHub, ici.

Lignes de code, clarté et maintenabilité

La solution avec les resolvers VTL permet de minimiser le nombre de lignes de code. Cependant, la syntaxe peu commune du VTL peut la rendre difficile à lire et comprendre, ce qui peut réduire la clarté et la maintenabilité.

Comparaison lignes de code

Quant aux resolvers JavaScript, ils sont plus accessibles, mais nécessitent de contenir chaque fonction dans un pipeline resolvers, ce qui explique pourquoi ils ont plus de lignes de code d'infrastructure. À ce sujet, l'équipe d'AppSync mentionne que « le support pour les unit resolvers pourrait être introduit à un moment donné en fonction des commentaires des clients ».

Performance et coûts

Les trois options proposent des rendements semblables. Comme le montre le tableau de comparaison de la performance, les différences ne sont pas significatives.

Comparaison de la performance

L'utilisation de Lambda avec AppSync offre la flexibilité d'ajuster la quantité de mémoire allouée, ce qui peut réduire la latence mais augmente potentiellement le coût. Par exemple, pour un million de requêtes avec 512 Mo et un temps moyen de 68,7 millisecondes, le coût de Lambda est de 0,77 $.

AppSync propose un coût fixe de 4 $ pour chaque million de requêtes. Cela signifie que l'utilisation conjointe de Lambda et d'AppSync génère automatiquement des coûts supplémentaires par rapport aux intégrations directes avec VTL ou JavaScript.

Conclusion

Les intégrations directes permettent de réduire le code de collage. En outre, la possibilité d'utiliser un langage de programmation populaire comme JavaScript pour écrire ces intégrations rend la solution plus accessible et attrayante pour les développeurs.

Cet ajout à la gamme Serverless d'AWS vous permet de vous concentrer sur ce qui est vraiment important, comme la logique métier, tout en vous positionnant pour une maintenance et une évolution plus simples de votre application dans le future.

Concrétisons votre idée

valerie@cliento.ca


quebec city outlined
©2019-2023 Cliento inc. Tous droits réservés.