Quarkus Framework codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API.
This codebase was created to demonstrate a fully fledged fullstack application built with Quarkus including CRUD operations, authentication, routing, pagination, and more.
We've gone to great lengths to adhere to the Quarkus community styleguides & best practices.
For more information on how to this works with other frontends/backends, head over to the RealWorld repo.
This application basicaly uses Quarkus Framework with Java 8 with some other modules known to development community:
application/ -> business logic implementation +--data/ -> data aggregator classes domain/ -> core business package +-- model/ | +-- builder/ | +-- constants/ | +-- entity/ -> only persistent model classes | +-- exception/ -> domain exceptions | +-- repository/ -> persistent context abstractions | +-- provider/ -> providers abstraction (token, hash, slug) +-- service -> domain bussiness abstraction infrastructure/ -> technical details package +-- provider/ -> providers implementaion +-- repository/ -> repository implementation +-- web/ -> web layer package +-- config/ -> serializer/deserializer singleton options +-- exception/ -> web layer exceptions +-- mapper/ -> exception handler mapping +-- model/ -> request/response models for web layer | +-- request/ -> request model objects | +-- response/ -> response model objects +-- qualifiers/ -> qualifiers for dependency injection +-- resources/ -> http routes and their handlers +-- security/ -> web layer security implementation | +-- annotation/ -> name binding annotations | +-- context/ -> security context options | +-- filter/ -> filters implementation for check authentication/authorization rules | +-- profile/ -> security profiles options +-- validation/ -> custom validations for request model
./mvnw compile quarkus:dev
The server should be running at http://localhost:8080
GraalVM is necessary for building native executable, more information about setting up GraalVM can be found in Quarkus guides and database engine need to be changed.
./mvnw package -Pnative
# Database configuration quarkus.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE quarkus.datasource.driver=org.h2.Driver quarkus.datasource.username=sa quarkus.datasource.password=
Improvements are welcome, feel free to contribute.