openapi3生成sdk

戚泰
2023-12-01
        <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();
    }
 类似资料: