2017-06-18 115 views
0

如何让swagger codegen使用现有的类而不是创建新的类?这可能吗?例如,我想使用org.springframework.data.domain.Page而不是创建另一个页面类的swagger。Swagger Codegen使用现有的类

回答

1

你可以使用--import-mappings,因为它是解释here

有时候你不想生成的模型做的。在这种情况下,您可以通过 只需指定一个导入映射来告诉代码生成器不会对 创建什么。当这样做时,每个引用特定 模型的位置都会引用您的类。

swagger-codegen-cli generate调用此,与大家包括例如,它会

--import-mappings Page=org.springframework.data.domain.Page

虽然importMappings尚未纳入常规配置参数here,如果你看一下代码here你可以看到它是一个List<String>。 我还没有与Maven插件,但看doc和我猜的代码中使用它这应该工作:

<plugin> 
    <groupId>io.swagger</groupId> 
    <artifactId>swagger-codegen-maven-plugin</artifactId> 
    <version>2.2.2-SNAPSHOT</version> 
    <executions> 
     <execution> 
      ... 
      <configuration> 
       ... 
       <importMappings> 
        <importMapping>Page=org.springframework.data.domain.Page</importMapping> 
       </importMappings> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

但是,这是recently changed,所以它可能如果你使用的是不同的旧版本的插件。在此之前,改变它似乎是这样的:

<plugin> 
    <groupId>io.swagger</groupId> 
    <artifactId>swagger-codegen-maven-plugin</artifactId> 
    <version>2.2.2-SNAPSHOT</version> 
    <executions> 
     <execution> 
      ... 
      <configuration> 
       ... 
       <configOptions> 
        <import-mappings>Page=org.springframework.data.domain.Page;Some=org.example.Some</import-mappings> 
       </configOptions> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

根据应得的支持在提交旧版本的评论,但我还没有尝试过这个,所以让我知道,如果它的工作原理。

+0

啊,谢谢。你知道我如何用swagger code-gen maven插件来配置它吗? – Snickers3192

+0

我已经更新了如何使用它的基础上的代码,我没有尝试过,所以它可能无法正常工作。但至少如果给你一个在哪里寻找它的想法。 – moondaisy

+0

感谢你是我在我的POM中到达那个舞台,我发现那个笨拙的人有点笨,它不会为Page创建一个类,并且它会错过''import org.springframework.data.domain.Page',所以我无论如何都必须手动编辑模板文件。你也不能改变你的类的名字,所以我不能有一个页面的资源A和资源B是相同的swagger文件。哈哈,我要在github上提交一个问题哈哈。 – Snickers3192

相关问题