VT2020-Helidon-Demo

From air
Revision as of 23:57, 28 November 2020 by Zeramdini.Otba (talk | contribs)
Jump to navigation Jump to search

Cette page contient une démonstration simple, qui explique et expose les différent composants de Helison SE leur fonctionnement.

Démonstration

Génération du code d'une API

Il est très facile de démarrer avec Helidon SE il suffit de lancer l'archetype suivant avec maven :

 mvn -U archetype:generate -DinteractiveMode=false \
   -DarchetypeGroupId=io.helidon.archetypes \
   -DarchetypeArtifactId=helidon-quickstart-se \
   -DarchetypeVersion=2.1.0 \
   -DgroupId=io.helidon.examples \
   -DartifactId=helidon-quickstart-se \
   -Dpackage=io.helidon.examples.quickstart.se

Le résultat est alors un projet simple qui montre les bases de la configuration du serveur Web et de l'implémentation des règles de routage de base.

Il faut ensuite entrer dans le dossier helidon-quickstart-se et construire l'application avec maven, Helidon va alors lancer en interne un Netty web serveur très rapide et léger :


 cd helidon-quickstart-se

Explication du code

Il faut d'abord savoir qu'Helidon utilise l'outil de gestionnaire de projet Maven, ainsi pour démarrer avec l’API WebServer, nous devons ajouter la dépendance requise Maven au fichier pom.xml :

       <dependency>
           <groupId>io.helidon.webserver</groupId>
           <artifactId>helidon-webserver</artifactId>
       </dependency>

Inspiré par NodeJS et d'autres frameworks Java, le composant serveur Web d'Helidon est une API asynchrone et réactive qui s'exécute au-dessus de Netty.


Commençons par configurer ce serveur web :


Tout d'abord, nous devons construire une instance de l'interface Config en invoquant sa méthode create () pour lire notre fichier de configuration du classpath, qui correspond au fichier application.yalm.

Le fichier application.yalm est le suivant :

app:
  greeting: "Hello"
server:
  port: 8080
  host: 0.0.0.0
 

On instancie et construit le serveur avec la méthode JSONP méthode permettant d'envoyer des données structurées au format JSON entre différents domaines. L'acronyme signifie JSON (JavaScript Object Notation) with Padding (avec formatage).

WebServer server = WebServer.builder(createRouting(config))
 .config(config.get("server"))
 .addMediaSupport(JsonpSupport.create())
 .build();