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 文件中定义。

参数默认值描述

skip

false

设置为 true 以跳过代码生成

filterOperation

 

仅用于包括指定的操作 ID。可以使用逗号分隔多个 id。可以使用通配符,例如 find, 使其包含以 find 开头的所有操作。

specificationUri

src/spec/openapi.json

OpenApi 规范的 URI,支持文件系统路径、HTTP 和 classpath 资源,默认为项目目录中的 src/spec/openapi.json。支持 JSON 和 YAML。

auth

 

在远程获取 OpenApi 规格定义时添加授权标头。使用逗号分隔多个值传递 name:header 的 URL 编码字符串。

className

from titleRestDslRoute

生成的类的名称,从 OpenApi 规格标题获取,或默认设置为 RestDslRoute

packageName

来自 主机或 rest.dsl.generated

生成的类的软件包名称,从 OpenApi 规格主机值或 rest.dsl.generated 获取

indent

" "

哪个缩进要使用的字符(默认为四个空格),您可以使用 \t 表示标签字符

outputDirectory

generated-sources/restdsl-openapi

在项目目录中放置生成的源文件的位置,默认为 generate-sources/restdsl-openapi

destinationGenerator

 

实现 org.apache.camel.generator.openapi.DestinationGenerator 接口的类的完全限定类名称,以自定义目的地端点

destinationToSyntax

direct:${operationId}

到 uri 的默认语法,即使用直接组件。

restConfiguration

true

是否包含生成其余配置,并检测要使用的其余组件。

apiContextPath

 

如果 restConfiguration 设为 true,则定义 openapi 端点路径。

clientRequestValidation

false

是否启用请求验证。

basePath

 

覆盖 OpenAPI 规格中定义的 api 基础路径。

requestMappingValues

/**

允许生成自定义 RequestMapping 映射值。多个映射值可传递为:

<requestMappingValues> <param>/my-api-path/ </param> <param>/my-other-path/ &lt;/param> </requestMappingValues>

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. 选项

插件支持以下 附加选项

参数默认值描述

swaggerCodegenMavenPluginVersion

3.0.36

要使用的 io.swagger.codegen.v3:swagger-codegen-maven-plugin maven 插件的版本。

modelOutput

 

目标输出路径(默认为 ${project.build.directory}/generated-sources/openapi)

modelPackage

io.swagger.client.model

用于生成的模型对象/类的软件包

modelNamePrefix

 

为模型类和枚举设置前或后缀

modelNameSuffix

 

为模型类和枚举设置前或后缀

modelWithXml

false

在生成的模型中启用 XML 注解(仅适用于提供对 JSON 和 XML 支持的库)

configOptions

 

将特定于语言的参数映射传递给 swagger-codegen-maven-plugin

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 文件中定义。

参数默认值描述

skip

false

设置为 true 以跳过代码生成。

filterOperation

 

仅用于包括指定的操作 ID。可以使用逗号分隔多个 id。可以使用通配符,例如 find, 使其包含以 find 开头的所有操作。

specificationUri

src/spec/openapi.json

OpenApi 规范的 URI,支持文件系统路径、HTTP 和 classpath 资源,默认为项目目录中的 src/spec/openapi.json。支持 JSON 和 YAML。

auth

 

在远程获取 OpenApi 规格定义时添加授权标头。使用逗号分隔多个值传递 name:header 的 URL 编码字符串。

outputDirectory

generated-sources/restdsl-openapi

在项目目录中放置生成的源文件的位置,默认为 generate-sources/restdsl-openapi

fileName

camel-rest.xml

XML 文件的名称作为输出。

蓝图

false

如果启用,生成 合并蓝图 XML 而不是 Spring XML。

destinationGenerator

 

实现 org.apache.camel.generator.openapi.DestinationGenerator 接口的类的完全限定类名称,以自定义目的地端点

destinationToSyntax

direct:${operationId}

到 uri 的默认语法,即使用直接组件。

 

restConfiguration

true

是否包含生成其余配置,并检测要使用的其余组件。

apiContextPath

 

如果 restConfiguration 设为 true,则定义 openapi 端点路径。

clientRequestValidation

false

是否启用请求验证。

basePath

 

覆盖 OpenAPI 规格中定义的 api 基础路径。

requestMappingValues

/**

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. 选项

插件支持以下 附加选项

参数默认值描述

swaggerCodegenMavenPluginVersion

3.0.36

要使用的 io.swagger.codegen.v3:swagger-codegen-maven-plugin maven 插件的版本。

modelOutput

 

目标输出路径(默认为 ${project.build.directory}/generated-sources/openapi)

modelPackage

io.swagger.client.model

用于生成的模型对象/类的软件包

modelNamePrefix

 

为模型类和枚举设置前或后缀

modelNameSuffix

 

为模型类和枚举设置前或后缀

modelWithXml

false

在生成的模型中启用 XML 注解(仅适用于提供对 JSON 和 XML 支持的库)

configOptions

 

将特定于语言的参数映射传递给 swagger-codegen-maven-plugin

1.8.11. camel-restdsl-openapi:generate-yaml

camel-restdsl-openapi:generate-yaml 目标用于从 Maven 生成 REST DSL YAML 实现源代码。

1.8.12. 选项

该插件支持可从命令行配置的以下选项(使用 -D 语法),或者在 < configuration > 标签中的 pom.xml 文件中定义。

参数默认值描述

skip

false

设置为 true 以跳过代码生成。

filterOperation

 

仅用于包括指定的操作 ID。可以使用逗号分隔多个 id。可以使用通配符,例如 find, 使其包含以 find 开头的所有操作。

specificationUri

src/spec/openapi.json

OpenApi 规范的 URI,支持文件系统路径、HTTP 和 classpath 资源,默认为项目目录中的 src/spec/openapi.json。支持 JSON 和 YAML。

auth

 

在远程获取 OpenApi 规格定义时添加授权标头。使用逗号分隔多个值传递 name:header 的 URL 编码字符串。

outputDirectory

generated-sources/restdsl-openapi

在项目目录中放置生成的源文件的位置,默认为 generate-sources/restdsl-openapi

fileName

camel-rest.xml

XML 文件的名称作为输出。

destinationGenerator

 

实现 org.apache.camel.generator.openapi.DestinationGenerator 接口的类的完全限定类名称,以自定义目的地端点

destinationToSyntax

direct:${operationId}

到 uri 的默认语法,即使用直接组件。

 

restConfiguration

true

是否包含生成其余配置,并检测要使用的其余组件。

apiContextPath

 

如果 restConfiguration 设为 true,则定义 openapi 端点路径。

clientRequestValidation

false

是否启用请求验证。

basePath

 

覆盖 OpenAPI 规格中定义的 api 基础路径。

requestMappingValues

/**

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. 选项

插件支持以下 附加选项

参数默认值描述

swaggerCodegenMavenPluginVersion

3.0.36

要使用的 io.swagger.codegen.v3:swagger-codegen-maven-plugin maven 插件的版本。

modelOutput

 

目标输出路径(默认为 ${project.build.directory}/generated-sources/openapi)

modelPackage

io.swagger.client.model

用于生成的模型对象/类的软件包

modelNamePrefix

 

为模型类和枚举设置前或后缀

modelNameSuffix

 

为模型类和枚举设置前或后缀

modelWithXml

false

在生成的模型中启用 XML 注解(仅适用于提供对 JSON 和 XML 支持的库)

configOptions

 

将特定于语言的参数映射传递给 swagger-codegen-maven-plugin

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.