com.guicedee.guicedservlets.swagger.SwaggerModule Maven / Gradle / Ivy
package com.guicedee.guicedservlets.swagger;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.guicedee.guicedservlets.swagger.implementations.SwaggerServlet;
import io.swagger.v3.core.util.Json;
import com.guicedee.guicedservlets.services.GuiceSiteInjectorModule;
import com.guicedee.guicedservlets.services.IGuiceSiteBinder;
import java.util.HashMap;
import java.util.Map;
public class SwaggerModule
implements IGuiceSiteBinder
{
private static String path = "/swagger";
public SwaggerModule()
{
//Not required
}
public SwaggerModule(final String path)
{
this.path = path;
}
public static String getPath()
{
return path;
}
public static void setPath(String path)
{
SwaggerModule.path = path;
}
@Override
public void onBind(GuiceSiteInjectorModule module)
{
Json.mapper()
.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING)
.enable(JsonGenerator.Feature.QUOTE_FIELD_NAMES)
.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
.disable(SerializationFeature.FAIL_ON_UNWRAPPED_TYPE_IDENTIFIERS);
Map props = new HashMap<>();
props.put("jersey.config.server.wadl.disableWadl", "true");
props.put("jersey.config.server.provider.packages", "");
module.serve$(path + "/*")
.with(SwaggerServlet.class, props);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy