使用实现外部接口的openapi生成器创建模型类

问题描述

我正在使用openapi-generator生成Java类。

我希望模型类实现一个openapi-generator尚未生成的外部接口。

在yaml模型中是否可以定义某些内容,或者可以将其传递给openapi-generator-maven-plugin允许这种行为的属性?

必需行为的示例:

package com.example.model;

/**
 * ExampleModel
 */
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
public class ExampleModel implements com.example.CustomInterface {
  @JsonProperty("property1")
  private String property1;

  @JsonProperty("property2")
  private String property2;

解决方法

如果您想以相同的方式修改所有类,则我会选择更改模板。在您的情况下,很可能是此文件:pojo.mustache

只需将其复制到您的src/main/resources/文件夹(也许在名为custom的子文件夹中)并根据需要进行调整即可。

然后,您也需要调整pom.xml

<configuration>

    <!-- The following line is crucial: -->
    <templateDirectory>${project.basedir}/src/main/resources/custom</templateDirectory>

    <!-- Your other config goes here: -->
    <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
    <generatorName>java</generatorName>
    <configOptions>
        <sourceFolder>src/gen/java/main</sourceFolder>
    </configOptions>
</configuration>

也可以查看此templating documentation,以获取有关该主题的更多信息。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...