This API provides access to the Marvel Comics Public API.
To run this Spring Boot app, first make sure to set the Marvel API/private key using the following properties in src/main/resources/application.properties
api.marvel.apiKey
to your Marvel API keyapi.marvel.privateKey
to your Marvel API private key
To run with Gradle, execute the applicable command from the top-level project directory to start the server.*
OS | Command |
---|---|
Linux/macOS | ./gradlew bootRun |
Windows | gradlew.bat bootRun |
To run with Docker:
- Install Docker (https://docs.docker.com/get-docker/)
- Run
./gradlew bootBuildImage
| - Run
./docker-run.sh
* - Make sure you have a Java JRE/JDK installed and that the java
/java.exe
executable is in your system path.
Base service URL: http://localhost:8080/api/v1/...
- Spring Boot 2.75
- Spring WebFlux Reactive Framework
- Spring Actuator
- Springdoc-openapi - API docs
- Lombok - reduce biolerplate code (getters/setters/logger/etc)
- Slf4j Logging (w/ Log4j) - implementation agnostic logging
- Gradle 7.5
- JDK 11+
- Simple REST API with service call methods which takes 0 to 3 filters (lists of characters, creators, series id's) + add'l search methods
- Utilizes WebFlux WebClient; returns String containing Marvel API JSON response as-is
- Limited page size to only 5 records/call (development setting)
- Limited error handler returns JSON error from Marvel API call
- Add proper Marvel API error handling/responses
- Add API security - OAuth2/OIDC
- Add API caching & Etags handling to reduce b/w usage/latency
- Add ELK/Splunk style logs & analysis
- Add Observability metrics publishing (Datadog, Influx, etc.)
- Add multi-environment support Spring Profiles/Env and/or Spring Cloud Config
- Containerize app with Docker/OCI image/deploy
- Add 'feature' management (Togglz/FF4J) - pre-deploying dormant API features, runtime feature enable/disable, a/b testing, etc.