Giter Club home page Giter Club logo

amt_quotes-exemple's Introduction

quotes-exemple

Mise en oeuvre d'une api avec Springboot et d'un client de test BDD avec Cucumber Avec OpenApi generator, génération à partir d'un fichier OpenAPI "quotes.yaml" :

  • des intertaces et des DTO pour Springboot
  • d'un client et des DTO pour le client BDD

Installation et utilisation avec IntelliJ

  • git clone de ce repository et import sous IntelliJ du projet (maven) qui contient 2 modules : quotes-api pour Springboot et quotes-spec pour le client BDD
  • Affectation d'un Java JDK 17 (File / Project structure / Project /SDK

quotes-api

  • Gérération du dossier target avec "maven clean package" (fenêtre Maven, quotes-exemple/quotes-api/Lifecycle)
  • Déclaration "Generated Source Root" du dossier target/generated-sources/openapi/src/main/java via le menu contextuel et "Mark directory as" sur ce dossier
  • Lancement du main Springboot (Swagger2SpringBoot)
  • L'interface utilisateur swagger-ui est accessible à http://localhost:9090/api
  • La base de donnée H2 est accessible à http://localhost:9090/api/h2-console url: jdbc:h2:mem:testdb username:sa pas de password

quotes-spec

  • Gérération du dossier target avec "maven clean package" (fenêtre Maven, quotes-exemple/quotes-spec/Lifecycle) si Springboot tourne, les tests BDD doivent s'exécuter sans erreurs au cours de l'exécution de Maven
  • Déclaration "Generated Source Root" du dossier target/generated-sources/openapi/src/main/java
  • La Feature Cucumber du dossier src/test/resources/features/quotes.feature doit être exécutable sous IntelliJ

Cycle de développement

  • Modifier le fichier OpenAPI "quotes.yaml" sous src/main/resource des 2 projets (copies identiques)
  • Api Springboot
    • Relancer "maven clean package" de quotes-api
    • Développer ou adapter les controlleurs, les DTO et les classes liées dans l'api Springboot
    • Si vous avez ajouté ou modifié des entités, vous pouvez initialiser des données dans le fichier data.sql de src/main/resource
    • Relancer Sprigboot et faire quelques tests manuels avec swagger-ui
  • Tests BDD cucumber (en mode TDD, les 2 premières étapes peuvent être effectuées avant le développement de l'api)
    • Relancer "maven clean package" de quotes-spec, les tests seront peut-être en erreur et peuvent être skippés
    • Développer ou adapter les features Cucumber et les steps pour les nouvelles fonctionalités
    • Exécuter les tests sous IntelliJ et relancer "maven clean package" de quotes-spec pour exécuter les tests avec Maven

amt_quotes-exemple's People

Contributors

chloefont avatar

Stargazers

Loïc Fontaine avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.