Tester les endpoints de son API avec Reqnroll

On va voir comment avoir en quelques minutes des assertions qui vont vérifier les endpoints de notre API avec des scénarios de ce genre:   Et des assertions du style: Versions utilisées pour la démo: I. Installation et dépendances 1. Créer un nouveau projet Reqnroll La première chose à faire est de créer un nouveau projet Reqnroll si ce n’est […]

Remplacer Swagger par OpenApi embarqué dans .NET 9

Depuis .NET 9, le le support d’OpenAPI est directement inclus dans .NET et ne passe plus par les librairies Swagger par défaut  (plus d’info sur ce choix ici si jamais ça vous intéresse). De façons simplifiée, la librairie Swashbuckle.AspNetCore.Swagger faisait deux choses: On va voir dans cet article comment se mettre à la page facilement 🙂 Pro-tips: Si vous utilisez […]

Corriger l’erreur CORS Missing Allow Origin  en configurant  votre API .NET

Description du problème Par défaut, il n’est pas autorisé de faire des requêtes entre une application qui est dans un domaine A vers une autre qui serait dans un domaine B (pour des raisons de sécurité, il y a plus de détails dans les sources). Si vous avez un front qui tourne sur un serveur node localhost:4200 et votre backend […]

Plugin Jetbrains – créer une action et la déclencher via un raccourcis

On va créer pas-à-pas un raccourci qui nous permettra de générer un IBAN et de l’insérer à l’endroit où se trouve notre curseur. Si vous n’avez pas fait le setup pour développer un plugin Jetbrains, je vous invite à lire notre article sur le sujet. I. Créer l’action Une action est une fonctionnalité qui va être déclenchée par l’utilisateur. Dans […]

Premiers pas pour créer un plugin utilisable dans un IDE Jetbrains (IntelliJ, Webstorm, Rider etc..)

Introduction Vous utilisez un IDE Jetbrains et des fonctionnalités vous manquent par exemple: etc.. Alors vous vous demandez peut-être comment les rajouter vous-même via l’écriture d’un plugin. Dans cet article, on va voir pas à pas comment se lancer en utilisant le SDK “IntelliJ Platform Plugin SDK” . La marche à suivre va être la même pour tous les IDE […]

Générez votre changelog automatiquement avec git

Votre changelog reprend les fonctionnalités que vous avez réalisé entre deux versions, ça tombe bien, votre historique git contient ces informations 🙂 On va voir comment les extraire de git pour générer automatiquement un changelog exhaustif et fiable. Le principe Pour faciliter la maintenance de votre projet, il est d’usage d’avoir des commits parlants afin que tous les développeurs puissent […]

Retirer un fichier d’un commit déjà push

On va prendre un cas concret: j’ai fait un commit et en relisant ma merge request, je me rend compte que certains fichiers ne devraient pas y être: Dans mon cas c’est le fichier src/test/java/com/globaldashboard/unit/dependencies/domain/PomUrlTest.java L’idée va être de défaire le commit en local et de le refaire: output de git log ⚠️ Avant de commercer, n’hésitez pas à faire […]

La différence de politique de proxification des Beans entre Spring et Spring Boot

Dans une application Spring, sauf exceptions, les Beans sont proxifiés. En d’autres mots, on n’interagit pas directement avec eux et ce mécanisme est à la base de l’AOP. Beaucoup de mécanismes s’appuient sur l’AOP (les Transactions par exemple) et connaître la façon dont sont proxifiés les beans est important pour prédire et comprendre certains comportements. La documentation Spring est très […]

Installer Maven sur Ubuntu

Prérequis Il faut que vous ayez déjà installé un JDK. Exécutez la commande:  Si vous avez bien un output de ce type avec cette commande, vous pouvez continuer. Dans le cas contraire, il faudra installer un JDK. Installation de Maven Aller sur la page https://dlcdn.apache.org/maven/maven-3/ Sélectionnez le dossier correspondant à la version que vous voulez installer puis allez dans le […]

Le Rollback des transactions Spring – Comprendre et modifier le comportement par défaut

Introduction Il est très commun d’utiliser les transactions Spring dans nos projets, il est donc important de savoir quand celles-ci altéreront notre base de données. On va voir via des exemples ce qui déclenche un rollback et comment customiser ce comportement. On va prendre en compte dans cet article les méthodes qui sont transactionnelles via l’annotation  @Transactional uniquement (et pas […]