<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Openapi on Java &amp; Moi</title><link>https://javaetmoi.com/tags/openapi/</link><description>Recent content in Openapi on Java &amp; Moi</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Fri, 26 Apr 2024 17:55:09 +0000</lastBuildDate><atom:link href="https://javaetmoi.com/tags/openapi/feed.xml" rel="self" type="application/rss+xml"/><item><title>La doc va bien, ne t’en fais pas</title><link>https://javaetmoi.com/2024/04/la-doc-va-bien-ne-ten-fais-pas/</link><pubDate>Fri, 26 Apr 2024 17:55:09 +0000</pubDate><guid isPermaLink="false">https://javaetmoi.com/?p=2335</guid><description>&lt;p&gt;Conférence : &lt;a href="https://www.devoxx.fr/"&gt;Devoxx France 2024&lt;/a&gt;&lt;br&gt;
Date : 17 avril 2024&lt;br&gt;Speakers : &lt;a href="https://www.linkedin.com/in/damien-lucas/"&gt;Damien Lucas&lt;/a&gt; (OnePoint)&lt;br&gt;
Format : Conférence (45 mn)&lt;br&gt;Slides : &lt;a href="https://dlucasd.github.io/la-doc-va-bien-ne-t-en-fais-pas/devoxx/#/"&gt;https://dlucasd.github.io/la-doc-va-bien-ne-t-en-fais-pas/devoxx/#/&lt;/a&gt;&lt;br&gt;
Vidéo Youtube : &lt;a href="https://www.youtube.com/watch?v=zQ0A75HqFuA"&gt;https://www.youtube.com/watch?v=zQ0A75HqFuA&lt;/a&gt;&lt;br&gt;
Repo GitHub : &lt;a href="https://github.com/dlucasd/la-doc-va-bien-ne-t-en-fais-pas"&gt;https://github.com/dlucasd/la-doc-va-bien-ne-t-en-fais-pas&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La &lt;strong&gt;documentation&lt;/strong&gt;, sujet atemporel. Travaillant sur des projets en TMA, Damien faisait le constat suivant : d’un projet à l’autre, la structure,
l’organisation et le niveau d’informations de la documentation diffèrent. De temps à autres, Damien assistait à des réunions visant à restructurer
la documentation. Chaque participant a sa vision. Trouver un consensus n’est pas facile. &lt;br&gt;
Damien s’est ainsi demandé s’il n’existait pas clé en main un &lt;strong&gt;template de rédaction de la documentation&lt;/strong&gt;, si possible &lt;strong&gt;Open Source&lt;/strong&gt;
et &lt;strong&gt;reconnu&lt;/strong&gt; par la communauté des dévs et architectes.&lt;/p&gt;
&lt;p&gt;Au cours de ses recherches, il est tombé sur le framework &lt;a href="https://arc42.org/"&gt;&lt;strong&gt;arc42&lt;/strong&gt;&lt;/a&gt; créé en 2005 par 2 allemands : Gernot Starke et Peter Hruschka.
Ce template se focalise sur l’ &lt;strong&gt;architecture des logiciels et des systèmes&lt;/strong&gt;. Plusieurs formats sources sont possibles en téléchargement depuis
la page &lt;a href="https://arc42.org/download"&gt;https://arc42.org/download&lt;/a&gt; : &lt;strong&gt;asciidoc&lt;/strong&gt;, &lt;strong&gt;markdown&lt;/strong&gt;, latex, Word, Confluence, html, Doxygen, IBM Rhapsody … Voici par exemple le template arc42 pour Word : &lt;a href="https://github.com/arc42/arc42-template/raw/master/dist/arc42-template-FR-withhelp-docx.zip"&gt;arc42-template-FR-withhelp-docx.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Damien a une &lt;strong&gt;préférence pour l’asciidoc&lt;/strong&gt; qui permet d’avoir une &lt;strong&gt;approche docs-as-code&lt;/strong&gt; : on peut le commiter dans un repository &lt;strong&gt;git&lt;/strong&gt; puis générer un document au format souhaité (ex : PDF)&lt;/p&gt;
&lt;p&gt;Les templates arc42 au format asciidoc (extension .adoc) sont disponibles sur le repo GitHub &lt;a href="https://github.com/arc42/arc42-template/tree/master/FR/asciidoc"&gt;arc42-template&lt;/a&gt;: une &lt;strong&gt;dizaine de langues&lt;/strong&gt; est supportée dont le &lt;strong&gt;français&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Ce template nous guide et nous pose les bonnes questions :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Contenu&lt;/strong&gt; : que faut-il documenter ?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Motivation&lt;/strong&gt; : pourquoi documenter et pour qui ?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Représentation&lt;/strong&gt; : comment documenter ? Faut-il préférer un diagramme ou une liste à puce ?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Arc42 propose de documenter une application en &lt;strong&gt;12 chapitres&lt;/strong&gt;. Chaque chapitre est lui-même généralement composé de 3 sous-parties. &lt;br&gt;Dans de ce talk, Damien s’appuie sur un projet fictif pour illustrer chacun des 12 chapitres. Ce projet consiste à développer une application de billetterie pour les JO. Il en profitera pour nous présenter des &lt;strong&gt;outils de génération de diagrammes&lt;/strong&gt; (PlantUML et Mermaid), des &lt;strong&gt;outils de modélisation&lt;/strong&gt; (C4 et Structurizr) et des &lt;strong&gt;outils de génération de documentation&lt;/strong&gt; (avec CLI et donc intégrable à la CI).&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="word-image-2335-1"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2024/04/word-image-2335-1.jpeg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Générateur de squelette d’application basé sur Spring Initializr</title><link>https://javaetmoi.com/2022/07/generateur-de-squelette-dapplication-base-sur-spring-initializr/</link><pubDate>Sun, 03 Jul 2022 12:25:17 +0000</pubDate><guid isPermaLink="false">https://javaetmoi.com/?p=2217</guid><description>&lt;p&gt;Dans une &lt;strong&gt;grande entreprise&lt;/strong&gt;, le &lt;strong&gt;développement d’applications métiers&lt;/strong&gt; doit respecter les &lt;strong&gt;règles&lt;/strong&gt; en vigueur : normes de développement, normes de sécurité, barrière qualité, socle technique borné, intégration à l’usine de dév …&lt;br&gt;Le &lt;strong&gt;démarrage d’une nouvelle application Java&lt;/strong&gt; peut être accélérée de bien des manières : usage d’outils Low Code comme &lt;a href="https://www.vermeg.com/fr/produit-palmyra/"&gt;Palmyra&lt;/a&gt;, générateur de squelettes d’application comme &lt;a href="https://www.jhipster.tech/"&gt;JHipster&lt;/a&gt;, utilisation d’applications blanches déclinées par catégorie d’appli (ex : batch, web), copier/coller/élagage d’une application de référence, guide de démarrage sous forme wiki … Chaque technique présente ses avantages et ses inconvénients. Mais certaines ne couvrent pas toutes les règles évoquées précédemment.&lt;br&gt;Afin d’ &lt;strong&gt;accélérer le développement&lt;/strong&gt; d’une nouvelle application, mon objectif était de générer un &lt;strong&gt;squelette d’application minimaliste&lt;/strong&gt; dont le code généré est parfaitement maitrisé et avec des &lt;strong&gt;dépendances choisies à la carte&lt;/strong&gt; par le tech lead. Libre à lui ensuite de retravailler le code généré pour mettre en place l’architecture cible de l’application, en choisissant par exemple de partir sur une architecture hexagonale.&lt;/p&gt;
&lt;p&gt;Bien connu des développeurs Spring Boot, je me suis appuyé sur le code backend faisant tourner le site &lt;a href="https://start.spring.io/"&gt;https://start.spring.io/&lt;/a&gt;, à savoir le projet &lt;strong&gt;&lt;a href="https://github.com/spring-io/initializr"&gt;Spring Initializr&lt;/a&gt;&lt;/strong&gt; conçu et maintenu majoritairement par Stéphane Nicoll. Léger, codé en Java, reposant sur Spring Boot et documenté, ce projet a été conçu pour être personnalisé et extensible. Cela en a fait un excellent candidat.&lt;br&gt;La première mouture de ce générateur développé en quelques jours m’aura permis de générer :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la configuration du socle Spring Boot d’entreprise&lt;/li&gt;
&lt;li&gt;la configuration du logger permettant de standardiser les logs au format JSON&lt;/li&gt;
&lt;li&gt;la sécurisation des API REST avec Spring Security, OpenID Connect et le SSO d’entreprise&lt;/li&gt;
&lt;li&gt;les contrôleurs et DTO d’une API REST à partir d’une spécification OpenAPI 3&lt;/li&gt;
&lt;li&gt;le Dockerfile et la configuration du pipeline CI/CD&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>