Identity Service API

Production-style backend service for user identity management, built with an API-first and contract-driven approach.

This Maven site is generated by CI after ./mvnw clean verify succeeds. The public GitHub Pages root is the custom static dashboard, while this Maven site is published under /maven-site/.

What This Project Demonstrates

  • OpenAPI-first design with generated Spring MVC contracts
  • Versioned APIs for /api/v1 and /api/v2
  • Layered backend architecture: API, service, domain, persistence and infrastructure
  • PostgreSQL persistence with Flyway migrations
  • BCrypt password hashing and soft deletes
  • RFC 7807 ProblemDetail error responses
  • Unit, web-layer, repository and Testcontainers integration tests
  • Docker Compose support and GitHub Actions CI/CD
  • JaCoCo coverage generated during Maven verification

Generated Documentation

Build Runtime

  • Java 21
  • Maven
  • GitHub Actions on ubuntu-latest

Source Links

Local API Documentation

Static OpenAPI HTML documentation is generated by Maven from:

src/main/resources/openapi/identity-api.yaml

CI publishes it at:

https://danielemasone.github.io/identity-service/openapi/

Swagger UI is still exposed by the running Spring Boot application as a local runtime convenience:

http://localhost:8080/api/swagger-ui.html

GitHub Pages is static and does not host the running backend API.

Local Verification

Generate OpenAPI sources, MapStruct implementations, tests, package output and JaCoCo coverage:

./mvnw clean verify

Generate this Maven site after verification:

./mvnw site

The generated output is written to:

target/site