Fixed camel-swagger-java to use correct HTTP accept header to detect what the client want as response.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e0e6beeb Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e0e6beeb Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e0e6beeb Branch: refs/heads/camel-2.19.x Commit: e0e6beebfa4977959cf8527532d329678632f458 Parents: 26d70e7 Author: Claus Ibsen <davscl...@apache.org> Authored: Tue Jul 25 20:46:11 2017 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Jul 25 20:50:40 2017 +0200 ---------------------------------------------------------------------- camel-core/src/main/java/org/apache/camel/Exchange.java | 1 + .../java/org/apache/camel/swagger/RestSwaggerProcessor.java | 7 ++++--- .../org/apache/camel/swagger/servlet/RestSwaggerServlet.java | 7 ++++--- examples/camel-example-swagger-cdi/README.md | 6 +++--- 4 files changed, 12 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/e0e6beeb/camel-core/src/main/java/org/apache/camel/Exchange.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/Exchange.java b/camel-core/src/main/java/org/apache/camel/Exchange.java index eecc7e0..4f09708 100644 --- a/camel-core/src/main/java/org/apache/camel/Exchange.java +++ b/camel-core/src/main/java/org/apache/camel/Exchange.java @@ -72,6 +72,7 @@ public interface Exchange { String AUTHENTICATION = "CamelAuthentication"; String AUTHENTICATION_FAILURE_POLICY_ID = "CamelAuthenticationFailurePolicyId"; + @Deprecated String ACCEPT_CONTENT_TYPE = "CamelAcceptContentType"; String AGGREGATED_SIZE = "CamelAggregatedSize"; String AGGREGATED_TIMEOUT = "CamelAggregatedTimeout"; http://git-wip-us.apache.org/repos/asf/camel/blob/e0e6beeb/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerProcessor.java ---------------------------------------------------------------------- diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerProcessor.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerProcessor.java index 9edf41e..229b5bc 100644 --- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerProcessor.java +++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerProcessor.java @@ -17,6 +17,7 @@ package org.apache.camel.swagger; import java.util.Collections; +import java.util.Locale; import java.util.Map; import io.swagger.jaxrs.config.BeanConfig; @@ -56,7 +57,7 @@ public class RestSwaggerProcessor implements Processor { String contextId = exchange.getContext().getName(); String route = exchange.getIn().getHeader(Exchange.HTTP_PATH, String.class); - String accept = exchange.getIn().getHeader(Exchange.ACCEPT_CONTENT_TYPE, String.class); + String accept = exchange.getIn().getHeader("Accept", String.class); RestApiResponseAdapter adapter = new ExchangeRestApiResponseAdapter(exchange); @@ -71,8 +72,8 @@ public class RestSwaggerProcessor implements Processor { route = route.substring(0, route.length() - 13); } if (accept != null && !json && !yaml) { - json = accept.contains("json"); - yaml = accept.contains("yaml"); + json = accept.toLowerCase(Locale.US).contains("json"); + yaml = accept.toLowerCase(Locale.US).contains("yaml"); } if (!json && !yaml) { // json is default http://git-wip-us.apache.org/repos/asf/camel/blob/e0e6beeb/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/servlet/RestSwaggerServlet.java ---------------------------------------------------------------------- diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/servlet/RestSwaggerServlet.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/servlet/RestSwaggerServlet.java index 3aa7a75..6d47826 100644 --- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/servlet/RestSwaggerServlet.java +++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/servlet/RestSwaggerServlet.java @@ -22,6 +22,7 @@ import java.net.URL; import java.util.Enumeration; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import javax.servlet.ServletConfig; import javax.servlet.ServletException; @@ -122,7 +123,7 @@ public class RestSwaggerServlet extends HttpServlet { String contextId = null; String route = request.getPathInfo(); - String accept = request.getHeader(Exchange.ACCEPT_CONTENT_TYPE); + String accept = request.getHeader("Accept"); // whether to use json or yaml boolean json = false; @@ -135,8 +136,8 @@ public class RestSwaggerServlet extends HttpServlet { route = route.substring(0, route.length() - 13); } if (accept != null && !json && !yaml) { - json = accept.contains("json"); - yaml = accept.contains("yaml"); + json = accept.toLowerCase(Locale.US).contains("json"); + yaml = accept.toLowerCase(Locale.US).contains("yaml"); } if (!json && !yaml) { // json is default http://git-wip-us.apache.org/repos/asf/camel/blob/e0e6beeb/examples/camel-example-swagger-cdi/README.md ---------------------------------------------------------------------- diff --git a/examples/camel-example-swagger-cdi/README.md b/examples/camel-example-swagger-cdi/README.md index aa9a0bb..3985367 100644 --- a/examples/camel-example-swagger-cdi/README.md +++ b/examples/camel-example-swagger-cdi/README.md @@ -32,11 +32,11 @@ For example to get a user with id 123 The rest services provides Swagger API in json or yaml format which can be accessed from the following url - curl http://localhost:8080/api-doc/swagger.json - curl http://localhost:8080/api-doc/swagger.yaml + curl -H "Accept: application/json" http://localhost:8080/api-doc + curl -H "Accept: application/yaml" http://localhost:8080/api-doc -<http://localhost:8080/api-doc/swagger.json> +<http://localhost:8080/api-doc> To stop the example hit <kbd>ctrl</kbd>+<kbd>c</kbd>