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

如何使用with swagger codegen插件(maven)生成客户端代码?

岳城
2023-03-14

我需要在eclipse中使用with swagger codegen插件(用于maven)生成服务器存根代码。你能帮我怎么做吗?以及需要什么配置(在pom.xml中)。

共有3个答案

储思聪
2023-03-14

swagger-codemen-maven-plugin的示例配置可在https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen-maven-plugin

此处提供了可能的语言列表:https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages

利海阳
2023-03-14
<!-- Swagger -->
<plugin>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>2.3.1</version>
    <executions>
        <execution>
            <id>contract-service</id>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${basedir}/src/main/resources/swagger/rest-data-exchange-format.yaml</inputSpec>
                <artifactId>contract-service</artifactId>
                <output>${basedir}/target/generated-sources</output>
                <language>spring</language>
                <modelPackage>ru.payhub.rest.v1.model</modelPackage>
                <apiPackage>ru.payhub.rest.v1.api</apiPackage>
                <!-- <invokerPackage>ru.payhub.rest.v1.handler</invokerPackage> -->
                <generateSupportingFiles>false</generateSupportingFiles>
                <configOptions>
                    <sourceFolder>src/main/java</sourceFolder>
                    <interfaceOnly>true</interfaceOnly>
                    <library>spring-boot</library>
                    <dateLibrary>${generator.datelibrary}</dateLibrary>
                    <configPackage>ru.payhub.config</configPackage>
                    <singleContentTypes>true</singleContentTypes>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

这里有官方参数说明

这里的招摇过市语法规范

在这个maven插件示例中,使用swagger data-Model file(yaml)生成模型类,以便在控制器中使用。

宋鸿德
2023-03-14

我找到了这个答案。你只需要像下面这样改变pom.xml。

波姆。xml。

<properties>
           <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
           <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
           <java.version>1.8</java.version>
           <version.swagger.codegen>2.2.1</version.swagger.codegen>
           <yaml.file>${project.basedir}/src/main/resources/Api.yaml</yaml.file>
           <generated-sources-path>${project.build.directory}/generated-sources</generated-sources-path>
           <generated-sources-java-path>main/java</generated-sources-java-path>
       </properties>

<build>
           <plugins>
               <plugin>
                   <groupId>org.springframework.boot</groupId>
                   <artifactId>spring-boot-maven-plugin</artifactId>
               </plugin>
               <plugin>
                   <groupId>io.swagger</groupId>
                   <artifactId>swagger-codegen-maven-plugin</artifactId>
                   <version>${version.swagger.codegen}</version>
                   <configuration>
                       <inputSpec>${yaml.file}</inputSpec>
                       <configOptions>
                           <sourceFolder>${generated-sources-java-path}</sourceFolder>
                       </configOptions>
                       <output>${generated-sources-path}</output>
                   </configuration>
                   <executions>
                       <execution>
                           <id>generate-swagger-spring</id>
                           <phase>generate-sources</phase>
                           <goals>
                               <goal>generate</goal>
                           </goals>
                           <configuration>
                               <language>spring</language>
                               <modelPackage>${project.groupId}.swagger.model</modelPackage>
                               <apiPackage>${project.groupId}.swagger.api</apiPackage>
                               <invokerPackage>${project.groupId}.swagger.invoker</invokerPackage>
                           </configuration>
                       </execution>
                   </executions>
               </plugin>        
               <plugin>
                   <groupId>org.codehaus.mojo</groupId>
                   <artifactId>build-helper-maven-plugin</artifactId>
                   <executions>
                       <execution>
                           <id>add-generated-source</id>
                           <phase>initialize</phase>
                           <goals>
                               <goal>add-source</goal>
                           </goals>
                           <configuration>
                               <sources>
                                   <source>${generated-sources-path}/${generated-sources-java-path}</source>
                               </sources>
                           </configuration>
                       </execution>
                   </executions>
               </plugin>                
           </plugins>   

       <pluginManagement>
           <plugins>
               <plugin>
                   <groupId>org.eclipse.m2e</groupId>
                   <artifactId>lifecycle-mapping</artifactId>
                   <version>1.0.0</version>
                   <configuration>
                       <lifecycleMappingMetadata>
                           <pluginExecutions>
                               <pluginExecution>
                                   <pluginExecutionFilter>
                                       <groupId>io.swagger</groupId>
                                       <artifactId>swagger-codegen-maven-plugin</artifactId>
                                       <versionRange>[${version.swagger.codegen},)</versionRange>
                                       <goals>
                                           <goal>generate</goal>
                                       </goals>
                                   </pluginExecutionFilter>
                                   <action>
                                       <execute />
                                   </action>
                               </pluginExecution>
                           </pluginExecutions>
                       </lifecycleMappingMetadata>
                   </configuration>
               </plugin>
           </plugins>
       </pluginManagement>          
       </build>
 类似资料:
  • 我的目标是使用OpenAPI3.0生成Spring Boot REST客户端。 我希望首先生成API的OpenAPI规范文件(springdoc-openapi-maven-plugin),然后使用Maven从该文件(swagger-codegen-maven-plugin)生成客户机代码。 我的问题是swagger-codegen-maven-plugin在springdoc-openapi-m

  • 我想使用swagger-codegen生成我的假客户端代码,但我找不到能够引导我这样做的文档。 我有一个使用spring cloud的微服务,几个使用spring-cloud-feign接口请求数据的API服务。我希望我能生成feign客户端代码。 我很困惑如何生成我所有的代码?似乎几乎没有指南、文档或演示?

  • 我正在学习Swagger以及如何使用Swagger代码生成REST客户端。我知道如何使用Swagger做文档,我也知道如何使用Swagger生成一个简单的REST服务器,但我不知道如何使用Swagger代码生成一个简单的REST客户端。 例如,我有一个简单的应用程序,它是一个REST服务器,我想生成REST客户端。我能用斯威格代码吗? REST服务器的控制器: 之后,我开发了一个简单的REST客户

  • 嗨,我有一个包含两个库模块的gradle android项目: 所以LibB依赖于LibA。因此,LibB 的 build.gradle 文件如下所示: 如您所见,我想为gradle项目中的每个库模块生成. aar文件。到目前为止还不错,但是生成对LibA具有正确依赖关系的pom.xml文件并没有像预期的那样工作: pom。LibB的xml文件如下所示: 有没有办法在生成的pom文件中指定LibA

  • 我的设想如下。 我有一个swagger. json,例如:http://petstore.swagger.io/v2/swagger.json我想为上面的REST API使用生成的java客户端,例如: 扩展输出:<code>cica</code>,新宠物根据REST API实现进行存储。 我已经使用以下命令成功地为petstore生成了服务器存根: 但是这个 maven 项目代码是一个服务器代码

  • 我尝试用maven (mvn包)生成一个. zip文件,并希望在zip中也有一个清单文件。jar文件本身确实可以工作。我试图用maven jar插件生成一个清单文件,但它不起作用。我需要做些别的事情来得到一个清单文件吗,或者使用这个插件就足够了?父pom(我展示的父POM的父POM)有maven汇编插件。(我对maven完全陌生) pom.xml父 pom 的文件: pom。模块的xml文件: