A multi-module Maven workspace showing several ways to call HTTP APIs with modern Spring on Java 25 and Spring Boot 4.1.0.
| Module | Port | What it does |
|---|---|---|
rest-service |
8080 |
Employee REST API backed by Spring MVC, JPA, cache abstraction, and H2 |
soap-service |
7070 |
Minimal Spring-WS SOAP service with employee operations: GetEmployeeById, CreateEmployee, and GetAllEmployees |
rest-client |
8081 |
Synchronous Spring RestClient façade plus a small Spring Cloud Config refresh demo |
web-client |
8082 |
Reactive WebClient client with SSL settings and Resilience4j circuit breaker + retry |
graphql-service |
9090 |
GraphQL server exposing movie and actor queries plus an add-movie mutation |
graphql-client |
9091 |
GraphQL consumer that wraps HttpGraphQlClient behind simple REST endpoints |
- Java 25
- Spring Boot 4.1.0
- Spring Cloud 2025.1.2
- Maven multi-module build
- Lombok 1.18.46
http-clients/
├── graphql-client/
├── graphql-service/
├── rest-client/
├── rest-service/
├── soap-service/
└── web-client/
Run from the repository root:
mvn testTo package all modules:
mvn clean package- Start
rest-service - Start
graphql-service - Start
rest-client,web-client, and/orgraphql-client
Each module includes its own Maven wrapper, so you can run them independently:
cd rest-service && ./mvnw spring-boot:run
cd graphql-service && ./mvnw spring-boot:run
cd rest-client && ./mvnw spring-boot:run
cd web-client && ./mvnw spring-boot:run
cd graphql-client && ./mvnw spring-boot:runrest-service/README.mdrest-client/README.mdweb-client/README.mdgraphql-service/README.mdgraphql-client/ReadMe.md