当前位置: 首页 > 知识库问答 >
问题:

如何使用OpenAPI代码生成器生成带有附加属性的对象的模型类

胥良平
2023-03-14

我在OpenAPI定义中使用additionalPropertes来引用映射对象。我的OAS部分如下所示:

Configuration:
  title: Configuration Info
  type: object
  additionalProperties:
    type: string
  description: The config parameters.
  example:
    configName: header
    configValue: Context
    configId: "12"

使用openapi生成器的maven codegen插件生成代码时,版本为-4.3。1在以下配置中,不会为模型配置生成模型类。

           <plugin>
                <groupId>org.openapitools</groupId>
                <artifactId>openapi-generator-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <inputSpec>api.yaml</inputSpec>
                            <language>jaxrs-cxf-cdi</language>
                            <configOptions>
                                <apiPackage>${api-package}</apiPackage>
                                <modelPackage>${model-package}</modelPackage>
                                <sourceFolder>src/gen/java</sourceFolder>
                            </configOptions>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

如何在OAS中为具有附加属性的对象生成模型类?


共有1个答案

尉迟边浩
2023-03-14

将配置generateAliasModel设置为true将为OAS中定义的地图生成模型类。下面给出了正确的配置:

            <plugin>
                <groupId>org.openapitools</groupId>
                <artifactId>openapi-generator-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <inputSpec>api.yaml</inputSpec>
                            <language>jaxrs-cxf-cdi</language>
                            <configOptions>
                                <apiPackage>${api-package}</apiPackage>
                                <modelPackage>${model-package}</modelPackage>
                                <sourceFolder>src/gen/java</sourceFolder>
                            </configOptions>
                            <generateAliasAsModel>true</generateAliasAsModel>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
 类似资料:
  • 我只是将代码从swagger代码生成器迁移到open api代码生成器。我通过maven插件使用生成器。我需要它为一个外部API(在我的控制之外)生成一个客户端,这里给出了使用的swagger文件。 我的插件设置如下: 为了有一个最小的例子,我把昂首阔步的来源去掉了: 当生成器运行正常时,代码无效 结果列表«GenericRow»完全错误。 另一方面,类的名称是正确生成的只有变量名称处理错误。 如

  • 我正在开发一个具有Angular前端和RESTful Spring Boot Backend的应用程序 我从org.openapitools.找到了这个非常方便的maven插件openapi生成器maven插件凭借其代码生成功能,它有助于在我们的应用编程接口的前端和后端之间实施“合同优先”的方法。但是我们的swagger文件在请求体和响应体定义中使用了“oneOf”属性。我试图从中生成Spring

  • 我想用Java代码生成EMF模型。例如,我想创建一个新的Ecore建模项目,然后构建一个简单的模型,就像很多教程(比如vogella教程)中看到的那样。但我不想用GUI手工完成。我想学习如何使用EMF-Ecore-API用Java代码创建模型。 我试着找关于这个话题的教程。但令我失望的是,我找不到太多关于这个话题的资料。我能找到的唯一东西是一些代码片段,用来按代码加载和修改现有模型。但没有关于创建

  • 我定义OpenAPI 3.0文档并使用OpenAPI-generator-cli-3.3.4。jar生成Java代码(DTO)。但我无法解决这个问题:

  • 将Android Studio升级到4.0版本后,在“gradle-wrapper.properties”中:

  • 我正在努力创建rest客户端,我将调用一个API来提供这个大的json输出。我想知道如何通过输入这个json来自动创建Pojo类来晃动代码gen,并让它为我创建我的pojo类,这将节省手动时间。这是我尝试过的 要为生成PHP客户端,请执行以下操作:http://petstore.swagger.io/v2/swagger.json,请运行以下命令: (如果您使用的是Windows,请将最后一个命令