SAQDAUS Schéma d'application quarkus disposant d'angular utile en santé 9 janvier 2024 Présentation technique POURQUOI 2 Le besoin Quels intérêts ? Pourquoi 3 Faciliter le démarrage d’un nouveau projet Unifier l’architecture des applications Utilisation de Quarkus Mise en place des bonnes pratiques dès l’initialisation d’un projet (structure du code, linters…) WILDFLY vs Quarkus Pourquoi 4 - Technologie récente (mais très documentée) - Pas de console d’administration en production - N’est pas un serveur d’applications + Léger + Développement simplifié + Pensé pour le micro-service et Kubernetes + Rapide + Faible empreinte mémoire - Lourd - Complexe à configurer (standalone.xml) - Peu adapté à une architecture micro-services - Difficultés d’exploitation (plantage du serveur, …) + Technologie éprouvée + Dispose d’une console d’administration + Serveur d’applications 2 COMMENT 5 Création d’un nouveau projet Commande maven mvn archetype:generate "-DarchetypeGroupId=fr.aphp.csa.webapp" "-DarchetypeArtifactId=saqdaus" "-DarchetypeVersion=1.1.0" artifactId : artifactId du nouveau projet webComponentPrefix : préfixe utilisé pour le sélecteur des composants Angular package : package de plus bas niveau du projet (sauf besoin particulier, utiliser la valeur par défaut) Comment Structure générée N.B. : Le projet est créé dans le répertoire où la commande est appelée 6 Détail des modules 1/2 Projet parent Module d’assemblage Contenu par défaut Gestion des dépendances globales Gestion des propriétés maven globales • Liquibase (changelog) • Intercepteur d’erreurs • Configuration de l’application Ajouts • Classes globales au projet Comment Remarques • 7 Les autres modules ne doivent pas dépendre du module d’assemblage Détail des modules 2/2 Modules métier Module web Contenu par défaut Contenu par défaut • Classes d’exemple (à supprimer) • Configuration Angular • Module exemple (à supprimer) Ajouts • Remarques Comment 8 Ajouts Code back du projet • Découpage vertical du projet en module • Peuvent avoir des dépendances entre eux (attentions aux dépendances circulaires) • Code front du projet Remarques • Intégré à l’application via Quinoa Mes notes Deux fichiers environnements : • application.properties • application.env : pour surcharger les variables de application et s’adapter au contexte • L’application.env doit être dans le même répertoire que le jar et permet de changer le port pour avoir plusieurs jar en exécution en parallèle. • Démarrage : java –jar application.jar • Sous le projet : exécution quarkus en mode dev : mvn quarkus:dev • Pas de console en production, uniquement en dev : dev ui à /q/dev-v1 par défaut sur localhost:8080 ou autre. Voir SmallRye OpenAPI pour les appels REST et leur description. Lien vers : https://quarkus.io/guides/dev-ui 9