/realworld-vertx-jooq

RealWorld backend implementation using asyncronous Vertx and Jooq

Primary LanguageJavaMIT LicenseMIT

RealWorld Example App

Vertx 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 backend application built with Vertx including CRUD operations, authentication, routing, pagination, and more.

We've gone to great lengths to adhere to the Vertx community styleguide & best practices.

For more information on how to this works with other frontends/backends, head over to the RealWorld repo.

Deviations from spec

We deviated from the spec in the following ways:

  • tokens are passed via a header of Authorization: Bearer <token> not Authorization: Token <token>. This is because the Vertx JWT Auth module uses the Bearer scheme. Version 2 of the realworld spec will use Bearer as well (tracking issue).

How it works

We use vertx libraries wherever possible. This includes vertx-web , vertx-openapi and vertx-auth-jwt. For dependency injection we use dagger. And for database interactions we use jooq with r2dbc for a fully asynchronous application.

Getting started

./gradlew run