<dependency>
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.27</version>
</dependency>
/**
* openapi3转sdk
*
* @param docsUrl swagger docs路径
* @param jsonContent swagger docs 内容
* @param apiPackage 指定生成的api类的包名
* @param artifactId 指定pom.xml的artifactId的值
* @param artifactVersion 指定pom.xml的artifact的版本
* @param groupId 指定pom.xml的groupId的值
* @param modelPackage 指定生成的model类的包名
* @param outputDir 生成sdk的路径
*/
public static void codegen(String docsUrl, String jsonContent,
String apiPackage, String artifactId,
String artifactVersion, String groupId,
String modelPackage, String outputDir) {
CodegenConfigurator configurator = new CodegenConfigurator();
configurator.setLang("java");
if (StringUtils.isNotBlank(docsUrl)) {
configurator.setInputSpecURL(docsUrl);
} else if (StringUtils.isNotBlank(jsonContent)) {
configurator.setInputSpec(jsonContent);
} else {
log.error("解析内容为空,docsUrl:{},jsonContent:{}", docsUrl, jsonContent);
}
if (StringUtils.isNotBlank(apiPackage)) {
configurator.setApiPackage(apiPackage);
}
if (StringUtils.isNotBlank(artifactId)) {
configurator.setArtifactId(artifactId);
}
if (StringUtils.isNotBlank(artifactVersion)) {
configurator.setArtifactVersion(artifactVersion);
}
if (StringUtils.isNotBlank(groupId)) {
configurator.setGroupId(groupId);
}
if (StringUtils.isNotBlank(modelPackage)) {
configurator.setModelPackage(modelPackage);
}
if (StringUtils.isNotBlank(outputDir)) {
configurator.setOutputDir(outputDir);
}
final ClientOptInput clientOptInput = configurator.toClientOptInput();
new DefaultGenerator().opts(clientOptInput).generate();
}