# demo-deploy
API Spring Boot (Kotlin) de gestion d'un catalogue de livres, servie sous /api.
- JDK 25
- Docker, avec
docker composeoudocker-compose(sur macOS :colima start)
./gradlew :book-store:bootRunL'API répond sur http://localhost:8080/api :
curl localhost:8080/api/health
curl localhost:8080/api/books
curl -H 'Content-Type: application/json' -d '{"title":"Dune","bookKind":"sf"}' localhost:8080/api/booksPour la lancer dans Docker, comme en production :
./gradlew :book-store:bootJar
docker compose up -d --build
docker compose down -vTrois couches, de la moins chère à la plus chère.
Domaine et mapping, sans réseau ni Docker.
./gradlew :book-store:testLe module ne dépend pas de l'application : il l'interroge en HTTP, via son contrat d'API.
Il n'est pas lancé par ./gradlew build.
Contre l'application dockerisée (build du jar, montée de la stack, tests, démontage) :
./gradlew tiContre une application déjà démarrée :
BASE_URL=http://localhost:8080/api ./gradlew :book-store-ti:integrationTestVariables : BASE_URL (défaut http://localhost:8080/api), READINESS_TIMEOUT_SECONDS (défaut 60).
Joué par la CI après chaque déploiement sur master : appel de /api/health sur le
conteneur déployé, avec retries. Rien à lancer en local.