1.8. Camel REST DSL OpenApi Maven 插件
Camel REST DSL OpenApi Maven 插件支持以下目标:
- camel-restdsl-openapi:generate - 从 OpenApi 规范生成消费者 REST DSL RouteBuilder 源代码
- camel-restdsl-openapi:generate-with-dto - 要从 OpenApi 规范生成消费者 REST DSL RouteBuilder 源代码,并通过 swagger-codegen-maven-plugin 生成 DTO 模型类。
- camel-restdsl-openapi:generate-xml - 要从 OpenApi 规范生成消费者 REST DSL XML 源代码
- camel-restdsl-openapi:generate-xml-with-dto - 要从 OpenApi 规范生成消费者 REST DSL XML 源代码,并使用通过 swagger-codegen-maven-plugin 生成的 DTO 模型类。
- camel-restdsl-openapi:generate-yaml - 要从 OpenApi 规范生成使用者 REST DSL YAML 源代码
- camel-restdsl-openapi:generate-yaml-with-dto - 要从 OpenApi 规范生成消费者 REST DSL YAML 源代码,并使用通过 swagger-codegen-maven-plugin 生成的 DTO 模型类。
1.8.1. 将插件添加到 Maven pom.xml
此插件可以通过将其添加到 plugins
部分来添加到 Maven pom.xml
文件中,例如在 Spring Boot 应用程序中:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.camel</groupId> <artifactId>camel-restdsl-openapi-plugin</artifactId> <version>{CamelCommunityVersion}</version> </plugin> </plugins> </build>
然后,可以使用其前缀 camel-restdsl-openapi
执行插件,如下所示。
$mvn camel-restdsl-openapi:generate
1.8.2. camel-restdsl-openapi:generate
Camel REST DSL OpenApi Maven 插件的目标是从 Maven 生成 REST DSL RouteBuilder 实施源代码。
1.8.3. 选项
该插件支持可从命令行配置的以下选项(使用 -D
语法),或者在 配置
标签的 pom.xml
文件中定义。
参数 | 默认值 | 描述 |
---|---|---|
|
|
设置为 |
|
仅用于包括指定的操作 ID。可以使用逗号分隔多个 id。可以使用通配符,例如 | |
|
|
OpenApi 规范的 URI,支持文件系统路径、HTTP 和 classpath 资源,默认为项目目录中的 |
| 在远程获取 OpenApi 规格定义时添加授权标头。使用逗号分隔多个值传递 name:header 的 URL 编码字符串。 | |
|
from |
生成的类的名称,从 OpenApi 规格标题获取,或默认设置为 |
|
来自 |
生成的类的软件包名称,从 OpenApi 规格主机值或 |
|
|
哪个缩进要使用的字符(默认为四个空格),您可以使用 |
|
|
在项目目录中放置生成的源文件的位置,默认为 |
|
实现 | |
|
| 到 uri 的默认语法,即使用直接组件。 |
|
| 是否包含生成其余配置,并检测要使用的其余组件。 |
|
如果 | |
|
| 是否启用请求验证。 |
| 覆盖 OpenAPI 规格中定义的 api 基础路径。 | |
|
| 允许生成自定义 RequestMapping 映射值。多个映射值可传递为:
|
1.8.4. 带有 Servlet 组件的 Spring Boot 项目
如果 Maven 项目是 Spring Boot 项目,并且启用了 restConfiguration
,并且 servlet 组件用作 REST 组件,则此插件将自动检测软件包名称(如果尚未明确配置 packageName),其中 @SpringBootApplication
主类被启用,并使用同样的软件包名称和所需的 CamelRestController
支持类。
1.8.5. camel-restdsl-openapi:generate-with-dto
作为 生成
目标,还可以通过自动执行 swagger-codegen-maven-plugin 来生成 DTO 模型类的 java 源代码,从 OpenApi 规范生成 DTO 模型类的 java 源代码。
此插件的范围有限,仅限于只支持使用 swagger-codegen-maven-plugin 生成模型 DTO 的良好工作集。如果您需要更多电源和灵活性,则直接使用 Swagger Codegen Maven 插件 来生成 DTO 而不是此插件。
DTO 类可能需要额外的依赖项,例如:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency> <dependency> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-core</artifactId> <version>2.2.8</version> </dependency> <dependency> <groupId>org.threeten</groupId> <artifactId>threetenbp</artifactId> <version>1.6.8</version> </dependency>
1.8.6. 选项
插件支持以下 附加选项
参数 | 默认值 | 描述 |
---|---|---|
| 3.0.36 |
要使用的 |
| 目标输出路径(默认为 ${project.build.directory}/generated-sources/openapi) | |
|
| 用于生成的模型对象/类的软件包 |
| 为模型类和枚举设置前或后缀 | |
| 为模型类和枚举设置前或后缀 | |
| false | 在生成的模型中启用 XML 注解(仅适用于提供对 JSON 和 XML 支持的库) |
|
将特定于语言的参数映射传递给 |
1.8.7. camel-restdsl-openapi:generate-xml
Camel REST DSL OpenApi Maven 插件的 camel-restdsl-openapi:generate-xml
目标用于从 Maven 生成 REST DSL XML 实施源代码。
1.8.8. 选项
该插件支持可从命令行配置的以下选项(使用 -D
语法),或者在 < configuration
> 标签中的 pom.xml
文件中定义。
参数 | 默认值 | 描述 |
---|---|---|
|
|
设置为 |
|
仅用于包括指定的操作 ID。可以使用逗号分隔多个 id。可以使用通配符,例如 | |
|
|
OpenApi 规范的 URI,支持文件系统路径、HTTP 和 classpath 资源,默认为项目目录中的 |
| 在远程获取 OpenApi 规格定义时添加授权标头。使用逗号分隔多个值传递 name:header 的 URL 编码字符串。 | |
|
|
在项目目录中放置生成的源文件的位置,默认为 |
|
| XML 文件的名称作为输出。 |
|
| 如果启用,生成 合并蓝图 XML 而不是 Spring XML。 |
|
实现 | |
|
| 到 uri 的默认语法,即使用直接组件。 |
|
| |
是否包含生成其余配置,并检测要使用的其余组件。 |
| |
如果 |
|
|
是否启用请求验证。 |
| |
覆盖 OpenAPI 规格中定义的 api 基础路径。 |
|
|
1.8.9. camel-restdsl-openapi:generate-xml-with-dto
作为 generate-xml
目标,还可以通过自动执行 swagger-codegen-maven-plugin 来生成 DTO 模型类的 java 源代码,从 OpenApi 规范生成 DTO 模型类的 java 源代码。
此插件的范围有限,仅限于只支持使用 swagger-codegen-maven-plugin 生成模型 DTO 的良好工作集。如果您需要更多电源和灵活性,则直接使用 Swagger Codegen Maven 插件 来生成 DTO 而不是此插件。
DTO 类可能需要额外的依赖项,例如:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency> <dependency> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-core</artifactId> <version>2.2.8</version> </dependency> <dependency> <groupId>org.threeten</groupId> <artifactId>threetenbp</artifactId> <version>1.6.8</version> </dependency>
1.8.10. 选项
插件支持以下 附加选项
参数 | 默认值 | 描述 |
---|---|---|
| 3.0.36 |
要使用的 |
| 目标输出路径(默认为 ${project.build.directory}/generated-sources/openapi) | |
|
| 用于生成的模型对象/类的软件包 |
| 为模型类和枚举设置前或后缀 | |
| 为模型类和枚举设置前或后缀 | |
| false | 在生成的模型中启用 XML 注解(仅适用于提供对 JSON 和 XML 支持的库) |
|
将特定于语言的参数映射传递给 |
1.8.11. camel-restdsl-openapi:generate-yaml
camel-restdsl-openapi:generate-yaml
目标用于从 Maven 生成 REST DSL YAML 实现源代码。
1.8.12. 选项
该插件支持可从命令行配置的以下选项(使用 -D
语法),或者在 < configuration
> 标签中的 pom.xml
文件中定义。
参数 | 默认值 | 描述 |
---|---|---|
|
|
设置为 |
|
仅用于包括指定的操作 ID。可以使用逗号分隔多个 id。可以使用通配符,例如 | |
|
|
OpenApi 规范的 URI,支持文件系统路径、HTTP 和 classpath 资源,默认为项目目录中的 |
| 在远程获取 OpenApi 规格定义时添加授权标头。使用逗号分隔多个值传递 name:header 的 URL 编码字符串。 | |
|
|
在项目目录中放置生成的源文件的位置,默认为 |
|
| XML 文件的名称作为输出。 |
|
实现 | |
|
| 到 uri 的默认语法,即使用直接组件。 |
|
| |
是否包含生成其余配置,并检测要使用的其余组件。 |
| |
如果 |
|
|
是否启用请求验证。 |
| |
覆盖 OpenAPI 规格中定义的 api 基础路径。 |
|
|
1.8.13. camel-restdsl-openapi:generate-yaml-with-dto
作为 generate-yaml
目标,还可以通过自动执行 swagger-codegen-maven-plugin 来生成 DTO 模型类的 java 源代码,从 OpenApi 规范生成 DTO 模型类的 java 源代码。
此插件的范围有限,仅限于只支持使用 swagger-codegen-maven-plugin
生成模型 DTO 的良好工作集。如果您需要更多电源和灵活性,则直接使用 Swagger Codegen Maven 插件 来生成 DTO 而不是此插件。
DTO 类可能需要额外的依赖项,例如:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency> <dependency> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-core</artifactId> <version>2.2.8</version> </dependency> <dependency> <groupId>org.threeten</groupId> <artifactId>threetenbp</artifactId> <version>1.6.8</version> </dependency>
1.8.14. 选项
插件支持以下 附加选项
参数 | 默认值 | 描述 |
---|---|---|
| 3.0.36 |
要使用的 |
| 目标输出路径(默认为 ${project.build.directory}/generated-sources/openapi) | |
|
| 用于生成的模型对象/类的软件包 |
| 为模型类和枚举设置前或后缀 | |
| 为模型类和枚举设置前或后缀 | |
| false | 在生成的模型中启用 XML 注解(仅适用于提供对 JSON 和 XML 支持的库) |
|
将特定于语言的参数映射传递给 |