Apache Camel: implicit headers (#14674)

* Apache Camel: fix implicit headers

* ./mvnw clean package
  ./bin/generate-samples.sh
  ./bin/utils/export_docs_generators.sh

* Q

* Created samples/openapi3/client/3_0_3_unit_test/python/test/.gitempty

* update samples

---------

Co-authored-by: Giacomo Carnevale <gcarnevale@imolainformatica.it>
This commit is contained in:
William Cheng 2023-02-11 23:48:55 +08:00 committed by GitHub
parent b6abace9dc
commit d7a2e4a293
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 32 additions and 23 deletions

View File

@ -15,3 +15,4 @@ additionalProperties:
camelUseDefaultValidationErrorProcessor: true camelUseDefaultValidationErrorProcessor: true
camelRestClientRequestValidation: true camelRestClientRequestValidation: true
camelSecurityDefinitions: true camelSecurityDefinitions: true
implicitHeaders: true

View File

@ -75,7 +75,13 @@ public class {{classname}} extends RouteBuilder {
.type(RestParamType.header) .type(RestParamType.header)
.required({{required}}){{#description}} .required({{required}}){{#description}}
.description("{{{.}}}"){{/description}} .description("{{{.}}}"){{/description}}
.endParam(){{/headerParams}}{{#bodyParams}} .endParam(){{/headerParams}}{{#implicitHeadersParams}}
.param()
.name("{{baseName}}")
.type(RestParamType.header)
.required({{required}}){{#description}}
.description("{{{.}}}"){{/description}}
.endParam(){{/implicitHeadersParams}}{{#bodyParams}}
.param() .param()
.name("{{paramName}}") .name("{{paramName}}")
.type(RestParamType.body) .type(RestParamType.body)

View File

@ -39,8 +39,8 @@ Do not edit the class manually.
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.springframework.boot.version>2.6.2</org.springframework.boot.version> <org.springframework.boot.version>2.7.8</org.springframework.boot.version>
<org.apache.camel.version>3.14.0</org.apache.camel.version> <org.apache.camel.version>3.20.1</org.apache.camel.version>
</properties> </properties>
<dependencyManagement> <dependencyManagement>
@ -74,10 +74,9 @@ Do not edit the class manually.
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version> <version>3.10.1</version>
<configuration> <configuration>
<source>1.8</source> <release>11</release>
<target>1.8</target>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
@ -117,7 +116,7 @@ Do not edit the class manually.
<dependency> <dependency>
<groupId>org.openapitools</groupId> <groupId>org.openapitools</groupId>
<artifactId>jackson-databind-nullable</artifactId> <artifactId>jackson-databind-nullable</artifactId>
<version>0.2.1</version> <version>0.2.4</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.swagger</groupId> <groupId>io.swagger</groupId>
@ -128,19 +127,19 @@ Do not edit the class manually.
<dependency> <dependency>
<groupId>io.swagger.core.v3</groupId> <groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId> <artifactId>swagger-annotations</artifactId>
<version>2.2.7</version> <version>2.2.8</version>
</dependency> </dependency>
{{/oas3}} {{/oas3}}
{{#jackson}} {{#jackson}}
<dependency> <dependency>
<groupId>com.fasterxml.jackson.datatype</groupId> <groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId> <artifactId>jackson-datatype-jsr310</artifactId>
<version>2.13.0</version> <version>2.14.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.fasterxml.jackson.datatype</groupId> <groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId> <artifactId>jackson-datatype-jdk8</artifactId>
<version>2.13.0</version> <version>2.14.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.camel</groupId> <groupId>org.apache.camel</groupId>

View File

@ -14,6 +14,8 @@ public class RestConfiguration extends RouteBuilder {
@Override @Override
public void configure() throws Exception { public void configure() throws Exception {
restConfiguration() restConfiguration()
.scheme("{{scheme}}")
.host("{{host}}")
.component("{{camelRestComponent}}") .component("{{camelRestComponent}}")
.bindingMode(RestBindingMode.{{camelRestBindingMode}}){{#camelDataformatProperties}} .bindingMode(RestBindingMode.{{camelRestBindingMode}}){{#camelDataformatProperties}}
.dataFormatProperty("{{key}}", "{{value}}"){{/camelDataformatProperties}} .dataFormatProperty("{{key}}", "{{value}}"){{/camelDataformatProperties}}

View File

@ -28,7 +28,7 @@ public class {{classname}}RoutesImpl extends RouteBuilder {
.log(LoggingLevel.INFO, "HEADERS: ${headers}"){{#hasProduces}}{{#examples}}{{#-first}}{{^isArray}}{{^isMap}}{{^isPrimitiveType}} .log(LoggingLevel.INFO, "HEADERS: ${headers}"){{#hasProduces}}{{#examples}}{{#-first}}{{^isArray}}{{^isMap}}{{^isPrimitiveType}}
.setBody(constant({{>exampleString}})) .setBody(constant({{>exampleString}}))
.unmarshal().json(JsonLibrary.Jackson, {{returnType}}.class){{/isPrimitiveType}}{{/isMap}}{{/isArray}}{{#isArray}} .unmarshal().json(JsonLibrary.Jackson, {{returnType}}.class){{/isPrimitiveType}}{{/isMap}}{{/isArray}}{{#isArray}}
.setBody(constant({{>exampleStringArray}})) .setBody(constant({{>exampleString}}))
.unmarshal().json(JsonLibrary.Jackson, {{returnBaseType}}[].class){{/isArray}}{{/-first}}{{/examples}}{{/hasProduces}};{{/operation}}{{/operations}} .unmarshal().json(JsonLibrary.Jackson, {{returnBaseType}}[].class){{/isArray}}{{/-first}}{{/examples}}{{/hasProduces}};{{/operation}}{{/operations}}
} }
} }

View File

@ -39,8 +39,8 @@ Do not edit the class manually.
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.springframework.boot.version>2.6.2</org.springframework.boot.version> <org.springframework.boot.version>2.7.8</org.springframework.boot.version>
<org.apache.camel.version>3.14.0</org.apache.camel.version> <org.apache.camel.version>3.20.1</org.apache.camel.version>
</properties> </properties>
<dependencyManagement> <dependencyManagement>
@ -74,10 +74,9 @@ Do not edit the class manually.
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version> <version>3.10.1</version>
<configuration> <configuration>
<source>1.8</source> <release>11</release>
<target>1.8</target>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
@ -117,7 +116,7 @@ Do not edit the class manually.
<dependency> <dependency>
<groupId>org.openapitools</groupId> <groupId>org.openapitools</groupId>
<artifactId>jackson-databind-nullable</artifactId> <artifactId>jackson-databind-nullable</artifactId>
<version>0.2.1</version> <version>0.2.4</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.swagger</groupId> <groupId>io.swagger</groupId>
@ -127,17 +126,17 @@ Do not edit the class manually.
<dependency> <dependency>
<groupId>io.swagger.core.v3</groupId> <groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId> <artifactId>swagger-annotations</artifactId>
<version>2.2.7</version> <version>2.2.8</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.fasterxml.jackson.datatype</groupId> <groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId> <artifactId>jackson-datatype-jsr310</artifactId>
<version>2.13.0</version> <version>2.14.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.fasterxml.jackson.datatype</groupId> <groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId> <artifactId>jackson-datatype-jdk8</artifactId>
<version>2.13.0</version> <version>2.14.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.camel</groupId> <groupId>org.apache.camel</groupId>

View File

@ -14,6 +14,8 @@ public class RestConfiguration extends RouteBuilder {
@Override @Override
public void configure() throws Exception { public void configure() throws Exception {
restConfiguration() restConfiguration()
.scheme("http")
.host("petstore.swagger.io")
.component("servlet") .component("servlet")
.bindingMode(RestBindingMode.auto) .bindingMode(RestBindingMode.auto)
.dataFormatProperty("json.out.disableFeatures", "WRITE_DATES_AS_TIMESTAMPS") .dataFormatProperty("json.out.disableFeatures", "WRITE_DATES_AS_TIMESTAMPS")

View File

@ -74,7 +74,7 @@ public class PetApi extends RouteBuilder {
.description("Pet id to delete") .description("Pet id to delete")
.endParam() .endParam()
.param() .param()
.name("apiKey") .name("api_key")
.type(RestParamType.header) .type(RestParamType.header)
.required(false) .required(false)
.endParam() .endParam()

View File

@ -48,7 +48,7 @@ public class PetApiRoutesImpl extends RouteBuilder {
.log(LoggingLevel.INFO, "BODY TYPE: ${body.getClass().getName()}") .log(LoggingLevel.INFO, "BODY TYPE: ${body.getClass().getName()}")
.end() .end()
.log(LoggingLevel.INFO, "HEADERS: ${headers}") .log(LoggingLevel.INFO, "HEADERS: ${headers}")
.setBody(constant("[[ { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\" }, { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\" } ]]")) .setBody(constant("[ { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\" }, { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\" } ]"))
.unmarshal().json(JsonLibrary.Jackson, Pet[].class); .unmarshal().json(JsonLibrary.Jackson, Pet[].class);
/** /**
GET /pet/findByTags : Finds Pets by tags GET /pet/findByTags : Finds Pets by tags
@ -60,7 +60,7 @@ public class PetApiRoutesImpl extends RouteBuilder {
.log(LoggingLevel.INFO, "BODY TYPE: ${body.getClass().getName()}") .log(LoggingLevel.INFO, "BODY TYPE: ${body.getClass().getName()}")
.end() .end()
.log(LoggingLevel.INFO, "HEADERS: ${headers}") .log(LoggingLevel.INFO, "HEADERS: ${headers}")
.setBody(constant("[[ { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\" }, { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\" } ]]")) .setBody(constant("[ { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\" }, { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\" } ]"))
.unmarshal().json(JsonLibrary.Jackson, Pet[].class); .unmarshal().json(JsonLibrary.Jackson, Pet[].class);
/** /**
GET /pet/{petId} : Find pet by ID GET /pet/{petId} : Find pet by ID