Package dev.relism.flash.ext.jackson
Class JacksonExtension
java.lang.Object
dev.relism.flash.ext.jackson.JacksonExtension
- All Implemented Interfaces:
dev.relism.flash.extension.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 from a FlashContext.onReady(Runnable)
callback (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));
-
Constructor Summary
ConstructorsConstructorDescriptionInstalls with an opinionated defaultJsonMapper: auto-discovers modules on classpath (e.g.JacksonExtension(com.fasterxml.jackson.databind.ObjectMapper mapper) Installs with a fully configured customObjectMapper. -
Method Summary
-
Constructor Details
-
JacksonExtension
public JacksonExtension()Installs with an opinionated defaultJsonMapper: auto-discovers modules on classpath (e.g. Java Time) and writes dates as ISO strings. -
JacksonExtension
public JacksonExtension(com.fasterxml.jackson.databind.ObjectMapper mapper) Installs with a fully configured customObjectMapper.
-
-
Method Details
-
autoJson
public dev.relism.flash.routing.Middleware autoJson()Opinionated outbound JSON middleware factory.Use for app/scope-level registration:
JacksonExtension jackson = new JacksonExtension(); app.install(jackson).use(jackson.autoJson()); -
configure
public void configure(dev.relism.flash.extension.FlashRegistrar<?> app, dev.relism.flash.extension.FlashContext ctx) - Specified by:
configurein interfacedev.relism.flash.extension.FlashExtension
-