Java Spring Boot REST API for Marvel universe data.
Explore the docs »
Report Bug
·
Request Feature
- About The Project
- Getting Started
- Usage
- Roadmap
- Architecture
- Contributing
- License
- Contact
- Acknowledgements
This project is a RESTful API built with Java Spring Boot that provides access to Marvel universe data such as characters, comics, and stories. It is designed for learning, demo, and integration purposes.
- Java 17+
- Spring Boot
- Maven
- H2 Database (for development/testing)
- Lombok
To get a local copy up and running follow these simple steps.
- Java 17 or newer
- Maven 3.8+
- Clone the repository
git clone https://github.com/necmettincimen/marvel-java-spring-boot.git
- Go to the project directory
cd marvel-java-spring-boot - Build the project
mvn clean install
- Run the application
mvn spring-boot:run
- Test the application
mvn test run
Once the application is running, you can access the API at http://localhost:8080/api.
API documentation (Swagger UI) is available at http://localhost:8080/swagger-ui/index.html.
- Add authentication and authorization
- Add Docker support
- Improve test coverage
See the open issues for more.
This project follows the Hexagonal Architecture (Ports and Adapters) pattern:
- Domain Layer: Contains core business logic and domain models.
- Ports: Interfaces that define the operations for external systems (e.g., repositories, services).
- Adapters: Implementations of ports for specific technologies (e.g., database, web).
- Application Layer: Contains service classes that orchestrate business logic.
- Web Layer: REST controllers for API endpoints.
Key Technologies:
- Spring Boot: Application framework
- Spring WebFlux: Reactive REST API
- Spring Data R2DBC: Reactive database access
- PostgreSQL: Main database
- JWT: Authentication
- Lombok: Boilerplate code reduction
- Docker: Containerization
- JUnit 5: Unit and integration testing
src/
main/
java/
xyz/necmettincimen/marvel/marvel/
domain/ # Domain models and ports
adapter/
in/web/ # REST controllers (inbound adapters)
out/persistence/ # Database adapters (outbound)
application/service/ # Service layer
resources/
db/migration/ # Migration scripts
application.properties
test/
java/...
Contributions are welcome! Please fork the repo and submit a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Necmettin Çimen - @Necmettin Cimen - necmettin.dev@gmail.com
Project Link: https://github.com/necmettincimen/marvel-java-spring-boot