OpenAPI `v3/api-docs` returning an array of ascii integers instead of OpenApi json

25 Views Asked by At

My OpenApi Config class is

@Configuration
public class OpenApiConfiguration {

@Bean
public OpenAPI customOpenAPI() {
    return new OpenAPI().info(apiInfo());
}

private Info apiInfo() {
    return new Info()
            .title(API_INFO_TITLE)
            .description(API_INFO_DESC);
}

@Bean
public GsonHttpMessageConverter getMessGsonHttpMessageConverter(GsonBuilder gsonBuilder) {

  GsonHttpMessageConverter converter = new GsonHttpMessageConverter();
  gsonBuilder.disableHtmlEscaping();
  gsonBuilder.registerTypeAdapter(Json.class, new SpringfoxjsonToGsonAdapter())
      .registerTypeAdapter(ChangeDriver.class, new InterfaceAdapter<CULayer>())
      .registerTypeAdapter(ChangeDriverData.class, new InterfaceAdapter<TxnCULayer>())
      .registerTypeAdapter(TriggerCU.class, new InterfaceAdapter())
      .registerTypeAdapter(ExtendedProperty.class, new InterfaceAdapter<ExtendedProperty>());
  converter.setGson(gsonBuilder.create());
  return converter;
}

private static class SpringfoxjsonToGsonAdapter implements JsonSerializer<Json> {
  @Override
  public JsonElement serialize(Json json, Type type, JsonSerializationContext context) {
    final JsonParser parser = new JsonParser();
    return parser.parse(json.value());
  }
}


}

Due to presence of getMessGsonHttpMessageConverter(GsonBuilder gsonBuilder) and JsonSerializer OpenApi in /v3/api-docs are generating array of ascii integers. But these functions are written for json-serialization of response of my Apis. Can anyone suggest a way to get OpenApi in /v3/api-docs correctly.

I tried adding @EnableWebMvc but response of api gets affected.

0

There are 0 best solutions below