Benchmark des APIs
Dans le cadre de cette SAE, nous devons créer une API web afin de gérer les transactions entre notre client et notre serveur. Cependant il existe de nombreuses technologies permettant de créer ce type d’API. Il était important pour nous d’utiliser de nouvelles technologies que nous n’avions jamais vues en cours. Ainsi, nous ne voulions ni utiliser .Net, étant donné que nous l’étudions actuellement, ni node.js étant donné que nous l’avions utilisé lors de la SAE précédente.
Nous avons alors choisi trois technologies dans l’objectif de les comparer, ces technologies sont :
Nous avons choisi Go et Java parce qu’elles offraient deux manières différentes de coder des APIs. Aussi, nous avons choisi deux frameworks Go dans le but d’observer la réelle différence entre deux framework similaires concernant un même langage.
Nous voulions tout d’abord comparer l'efficacité des API via des tests de charge. Nous voulions ainsi apprendre à réaliser ces tests et pour cela nous avons utilisé l’outil gatling. Cet outil permet d’obtenir des rapports techniques détaillés sous forme de pages HTML comportant de nombreux graphiques.
Le résultat de ces tests fut peu convaincants, les APIs réalisées pour les tests étaient simples afin de pouvoir les réaliser rapidement. Cependant, cela ne permettait pas d’observer de réelles différences entre ces technologies. Malgré cela, l'API Quarkus semble avoir le mieux réagi face aux tests, ce qui nous a surpris puisque nous pensions que les technologies Go seraient plus rapides. Cependant ces tests peuvent être influencés par différents facteurs et ne doivent pas être pris tenus acquis.
Le second point important permettant de comparer ces technologies est la maintenabilité et la praticité. En effet, nous avons peu de temps pour réaliser ce projet et, bien qu’une technologie puisse être plus efficace qu’une autre, elle pourrait mener à un code moins rapide et maintenable.
Concernant cette partie, c’est Quarkus qui est notre premier choix. En effet nous connaissons déjà le java et la manière de coder l’API est fortement semblable à ce qui peut être vu en .Net. Ainsi Quarkus se rapproche le plus de ce que nous connaissons. Le projet est également plus facilement structurable. Les APIs réalisées en Go étaient plus similaires à ce que nous avons pu réaliser en node.js, et nous trouvons ce code moins maintenable et pratique pour nous.
Ainsi notre choix concernant la technologie utilisée lors de la SAE se portera sur Quarkus.