Class JacksonExtension

java.lang.Object
dev.relism.flash.ext.jackson.JacksonExtension
All Implemented Interfaces:
FlashExtension

public class JacksonExtension extends Object implements FlashExtension
Registers JSON support into the Flash extension layer.

Exposes a Json utility instance in the FlashContext under Json.class. Any handler or extension can retrieve it via ctx.require(Json.class) inside onInit() (class-based) or inside FlashExtension.routes(dev.relism.flash.extension.FlashRegistrar<?>, dev.relism.flash.extension.FlashContext) (extensions).

The raw ObjectMapper is also registered under ObjectMapper.class for extensions that need direct mapper access (e.g. OpenAPI schema generation).

JacksonMiddleware is provided under JacksonMiddleware.class and exposes opinionated JSON auto-marshalling middleware via JacksonMiddleware.autoJson().

Usage — composition (preferred)


 public class MyHandler extends RequestHandler {
     private Json json;

     @Override protected void onInit() {
         json = require(Json.class);
     }

     public Object handle(Request req, Response res) throws Exception {
         MyDto dto = json.body(req, MyDto.class);
         return json.write(res, 201, dto);
     }
 }
 

Custom mapper


 ObjectMapper mapper = JsonMapper.builder()
         .addModule(new JavaTimeModule())
         .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
         .build();

 FlashApp.create(8080)
         .install(new JacksonExtension(mapper));