Java 如何以编程方式调用swagger codegen?
我正在使用swagger codgen cli.jar生成一个restful java jax rs api。Java 如何以编程方式调用swagger codegen?,java,rest,jax-rs,swagger,Java,Rest,Jax Rs,Swagger,我正在使用swagger codgen cli.jar生成一个restful java jax rs api。 现在,我使用一些命令行选项调用java-jar来实现这一点 java -jar swagger-codegen-cli.jar generate -i api.yaml -l jaxrs -o ./outputdir 这很好用 但是我想从一个Java程序中调用这个函数,也就是说,将codegen.jar包含到我的类路径中,然后用类似的参数调用相应的方法 那么,我可以调用swagger
现在,我使用一些命令行选项调用java-jar来实现这一点
java -jar swagger-codegen-cli.jar generate -i api.yaml -l jaxrs -o ./outputdir
这很好用
但是我想从一个Java程序中调用这个函数,也就是说,将codegen.jar包含到我的类路径中,然后用类似的参数调用相应的方法
那么,我可以调用swagger codegen模块中的公共API吗?如果我正确理解您的需要,您希望以友好的方式生成存根类。那么为什么不使用生成存根类呢 如使用部分所述,只需添加到构建->插件部分(默认阶段为生成源代码阶段)
com.garethevans.plugin
您是否使用Maven构建应用程序?Atm我使用Maven构建swagger codegen,根据如何使用swagger,我可能有多个选项(Maven、ant),我需要阅读有关此插件的信息。(现在从我的普通帐户写入,不知何故我的登录被弄乱了…)下一步是动态生成API是的。但也许你误解了我的问题。如果我正确理解这个插件,它是maven的swaggers命令行选项的包装器?但你的最终目标是什么?是否创建存根?目标是:一个java程序,它像命令行一样运行swagger代码生成器。Sthg-like-swaggergen=新的SwaggerGenerator();gen.setLanguage(“jax-rs”);gen.setYaml(“…”)gen.generateApi(),这意味着从yaml或json api描述生成目标语言(在本例中为java jax rs)java源文件。。。创建的存根
<plugin>
<groupId>com.garethevans.plugin</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/api.yaml</inputSpec>
<language>java</language>
</configuration>
</execution>
</executions>
</plugin>