From 3ad759596f321ffb195256e045ec5803c00ee53c Mon Sep 17 00:00:00 2001 From: tobilarscheid Date: Mon, 6 Feb 2017 21:07:11 +0100 Subject: [PATCH] use custom object mapper to serialize json in order to avoid null values --- .../jaxrs/listing/AcceptHeaderApiListingResource.java | 3 ++- .../java/io/swagger/jaxrs/listing/ApiListingResource.java | 3 ++- .../io/swagger/jaxrs/listing/BaseApiListingResource.java | 6 ++++-- .../src/test/java/io/swagger/ApiListingResourceTest.java | 5 +++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/AcceptHeaderApiListingResource.java b/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/AcceptHeaderApiListingResource.java index 6a591fb49b..951b49c96e 100644 --- a/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/AcceptHeaderApiListingResource.java +++ b/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/AcceptHeaderApiListingResource.java @@ -1,5 +1,6 @@ package io.swagger.jaxrs.listing; +import com.fasterxml.jackson.core.JsonProcessingException; import io.swagger.annotations.ApiOperation; import javax.servlet.ServletConfig; @@ -25,7 +26,7 @@ public Response getListingJson( @Context Application app, @Context ServletConfig sc, @Context HttpHeaders headers, - @Context UriInfo uriInfo) { + @Context UriInfo uriInfo) throws JsonProcessingException { return getListingJsonResponse(app, context, sc, headers, uriInfo); } diff --git a/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/ApiListingResource.java b/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/ApiListingResource.java index 93623c10d7..96d01264a3 100644 --- a/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/ApiListingResource.java +++ b/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/ApiListingResource.java @@ -1,5 +1,6 @@ package io.swagger.jaxrs.listing; +import com.fasterxml.jackson.core.JsonProcessingException; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -25,7 +26,7 @@ public Response getListing( @Context ServletConfig sc, @Context HttpHeaders headers, @Context UriInfo uriInfo, - @PathParam("type") String type) { + @PathParam("type") String type) throws JsonProcessingException { if (StringUtils.isNotBlank(type) && type.trim().equalsIgnoreCase("yaml")) { return getListingYamlResponse(app, context, sc, headers, uriInfo); } else { diff --git a/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/BaseApiListingResource.java b/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/BaseApiListingResource.java index d167052ec0..9b57aae508 100644 --- a/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/BaseApiListingResource.java +++ b/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/listing/BaseApiListingResource.java @@ -1,5 +1,6 @@ package io.swagger.jaxrs.listing; +import com.fasterxml.jackson.core.JsonProcessingException; import io.swagger.config.FilterFactory; import io.swagger.config.Scanner; import io.swagger.config.SwaggerConfig; @@ -10,6 +11,7 @@ import io.swagger.jaxrs.config.ReaderConfigUtils; import io.swagger.jaxrs.config.SwaggerContextService; import io.swagger.models.Swagger; +import io.swagger.util.Json; import io.swagger.util.Yaml; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -161,11 +163,11 @@ protected Response getListingJsonResponse( ServletContext servletContext, ServletConfig servletConfig, HttpHeaders headers, - UriInfo uriInfo) { + UriInfo uriInfo) throws JsonProcessingException { Swagger swagger = process(app, servletContext, servletConfig, headers, uriInfo); if (swagger != null) { - return Response.ok().entity(swagger).build(); + return Response.ok().entity(Json.mapper().writeValueAsString(swagger)).type(MediaType.APPLICATION_JSON_TYPE).build(); } else { return Response.status(404).build(); } diff --git a/modules/swagger-jaxrs/src/test/java/io/swagger/ApiListingResourceTest.java b/modules/swagger-jaxrs/src/test/java/io/swagger/ApiListingResourceTest.java index 603d14778f..9b4f8299df 100644 --- a/modules/swagger-jaxrs/src/test/java/io/swagger/ApiListingResourceTest.java +++ b/modules/swagger-jaxrs/src/test/java/io/swagger/ApiListingResourceTest.java @@ -1,5 +1,6 @@ package io.swagger; +import com.fasterxml.jackson.core.JsonProcessingException; import io.swagger.jaxrs.Reader; import io.swagger.jaxrs.listing.ApiListingResource; import io.swagger.models.Swagger; @@ -24,7 +25,7 @@ public void shouldCheckModelsSet() { } @Test - public void shouldHandleNullServletConfig_issue1689() { + public void shouldHandleNullServletConfig_issue1689() throws JsonProcessingException { ApiListingResource a = new ApiListingResource(); try { a.getListing(null, null, null, null, "json"); @@ -38,7 +39,7 @@ public void shouldHandleNullServletConfig_issue1689() { } @Test - public void shouldHandleErrorServletConfig_issue1691() { + public void shouldHandleErrorServletConfig_issue1691() throws JsonProcessingException { ServletConfig sc = new ServletConfig() { @Override