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 |
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/
├── rest-service/
├── rest-client/
├── web-client/
├── graphql-service/
└── graphql-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:runcurl http://localhost:8080/rest/employees/all
curl http://localhost:8080/rest/employees/1curl http://localhost:8082/webclient/get-all-employee
curl http://localhost:8082/webclient/get-employee/1curl http://localhost:8081/client/employees
curl http://localhost:8081/client/employees/1curl http://localhost:9090/graphql \
-H 'Content-Type: application/json' \
-d '{"query":"{ movies { id title year director } }"}'curl http://localhost:9091/get-all-movies
curl -X POST http://localhost:9091/add-movie \
-H 'Content-Type: application/json' \
-d '{"id":6,"title":"Dark Knight","year":2010,"genres":["Action","SciFi"],"director":"Christopher Nolan"}'rest-service/README.mdrest-client/README.mdweb-client/README.mdgraphql-service/README.mdgraphql-client/ReadMe.md