You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Zoran Regvart (JIRA)" <ji...@apache.org> on 2018/04/04 13:10:00 UTC
[jira] [Assigned] (CAMEL-12420) Swagger definition broken when
working with dataType array
[ https://issues.apache.org/jira/browse/CAMEL-12420?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zoran Regvart reassigned CAMEL-12420:
-------------------------------------
Assignee: Zoran Regvart
> Swagger definition broken when working with dataType array
> ----------------------------------------------------------
>
> Key: CAMEL-12420
> URL: https://issues.apache.org/jira/browse/CAMEL-12420
> Project: Camel
> Issue Type: Bug
> Components: camel-swagger
> Affects Versions: 2.21.0
> Environment: {code:xml}
> <spring-boot.version>1.5.10.RELEASE</spring-boot.version>
> <camel.version>2.21.0</camel.version>
> <dependency>
> <groupId>org.apache.camel</groupId>
> <artifactId>camel-spring-boot-starter</artifactId>
> <version>${camel.version}</version>
> </dependency>
> <dependency>
> <groupId>org.apache.camel</groupId>
> <artifactId>camel-swagger-java-starter</artifactId>
> <version>${camel.version}</version>
> </dependency>
> {code}
> {code:sh}
> java -version
> openjdk version "1.8.0_162"
> OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-0ubuntu0.16.04.2-b12)
> OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)
> {code}
> Reporter: Johan Karlsson
> Assignee: Zoran Regvart
> Priority: Minor
>
> I've created two gists.
> [This first gist|https://gist.github.com/hochas/10e1f65531211672de03d018e42447df] is generated by _camel-swagger-java:2.21.0_ and is broken
> Copy the contents and paste into the [Swagger Editor|http://editor.swagger.io/]. See field _identification_ under _/classifier_ which according to the editor is broken.
> [This second gist](https://gist.github.com/hochas/1218ef7a14da509f7079c1f5e098b53c) is modified by hand and displays the field _identification_ as expected.
> The difference is at [line 74|https://gist.github.com/hochas/1218ef7a14da509f7079c1f5e098b53c#file-camel-swagger-working-json-L74]. The enum type in the broken version, [line 76|https://gist.github.com/hochas/10e1f65531211672de03d018e42447df#file-camel-swagger-broken-json-L76], should be inside the `items` object, according to [this issue|https://github.com/swagger-api/swagger-ui/issues/4400] at swagger-ui.
> This current behavior [seems to have been correct|https://github.com/swagger-api/swagger-ui/issues/685] some time back.
> This is the related parameter that I am creating in my camel route using the DSL:
> {code:java}
> parameters.add(new RestOperationParamDefinition()
> .name("identification")
> .type(RestParamType.query)
> .required(true)
> .description("The types of identification to include")
> .allowableValues(IdentificationType.getAllTypes())
> .collectionFormat(CollectionFormat.csv)
> .dataType("array")
> .arrayType("string"));
> {code}
> If it helps, here is the entirety of the route:
> {code:java}
> public class ClassifierRoute extends RouteBuilder {
>
> @Override
> public void configure() throws Exception {
> rest("/classifier")
> .description("MatchX Classifier REST API")
> .id("Classifier route")
> .get()
> .description("Gets classifiers based on supplied parameters")
> .produces(MediaType.APPLICATION_JSON)
> .outType(Identification.class)
> .responseMessage()
> .code(200)
> .message("Returns a result set in JSON format")
> .endResponseMessage()
> .responseMessage()
> .code(400)
> .message("The supplied query is invalid")
> .endResponseMessage()
> .params(addParameters())
> .to("direct:algorithmMatch");
>
> from("direct:algorithmMatch")
> .bean(ClassifierMediator.class, "getAlgorithmMatchCount")
> .marshal()
> .json(JsonLibrary.Jackson);
> }
> private List<RestOperationParamDefinition> addParameters() {
> List<RestOperationParamDefinition> parameters = Lists.newArrayList();
>
> parameters.add(new RestOperationParamDefinition()
> .name("feature")
> .type(RestParamType.query)
> .required(false)
> .description("The classifier feature type.")
> .allowableValues(FeatureType.getAllTypes()));
>
> parameters.add(new RestOperationParamDefinition()
> .name("rating")
> .type(RestParamType.query)
> .required(true)
> .description("The rating of the associated classifier. Takes everything up to and including this number.")
> .allowableValues("0", "1", "2", "3", "4")
> .dataType("integer"));
>
> parameters.add(new RestOperationParamDefinition()
> .name("identification")
> .type(RestParamType.query)
> .required(true)
> .description("The types of identification to include")
> .allowableValues(IdentificationType.getAllTypes())
> .collectionFormat(CollectionFormat.csv)
> .dataType("array")
> .arrayType("string"));
>
> parameters.add(new RestOperationParamDefinition()
> .name("from")
> .type(RestParamType.query)
> .required(true)
> .dataType("string")
> .dataFormat("date")
> .description("yyyy-MM-dd"));
>
> parameters.add(new RestOperationParamDefinition()
> .name("to")
> .type(RestParamType.query)
> .required(true)
> .dataType("string")
> .dataFormat("date")
> .description("yyyy-MM-dd"));
> return parameters;
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)