Eclipse Vert.x tool-kit 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 Eclipse Vert.x) including CRUD operations, authentication, routing, pagination, and more.
We've gone to great lengths to adhere to the Eclipse Vert.x community styleguides & best practices.
For more information on how to this works with other frontends/backends, head over to the RealWorld repo.
This application demonstrates an approach to using Eclipse Vert.x infrastructure to implement a web api.
Some modules used in this app:
- Spring to perform dependency injection
- Jackson to perform Serialization/Deserialization on the web layer
- Flyway to perform database version control
- H2 Database Engine to persist data
- JBCrypt for hash passwords
- Slugify to get title slugs
- Vert.x JDBC Client to execute async queries
- Vert.x Service Proxy to expose services on the event bus
- Vert.x RxJava to perform async operations in business layer
main/generated -> VertxEBProxy, VertxProxyHandler and Request/Response converters
+--java
| +--com
| +--example
| +--realworld
| +-- application -> spec logic implementation
| +-- domain -> domain model objects
| +-- infrastructure -> technical details package
./mvnw spring-boot:run
The server should be running at http://localhost:8080
./mvnw test
./collections/run-api-tests.sh
./mvnw package
file location: target/vertx-springboot-realworld-example-app.jar
spring:
datasource:
url: jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1
username: sa
password:
Improvements are welcome, feel free to contribute.