io.swagger.parser.OpenAPIParser Maven / Gradle / Ivy
 The newest version!
        
        package io.swagger.parser;
import io.swagger.parser.models.AuthorizationValue;
import io.swagger.parser.models.ParseOptions;
import io.swagger.parser.models.SwaggerParseResult;
import io.swagger.parser.v3.OpenAPIV3Parser;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ServiceLoader;
public class OpenAPIParser {
    public SwaggerParseResult readLocation(String url, List auth, ParseOptions options) {
        SwaggerParseResult output = null;
        for(io.swagger.parser.extensions.SwaggerParserExtension extension : getExtensions()) {
            output = extension.readLocation(url, transform(auth), options);
            if(output != null && output.getOpenAPI() != null) {
                return output;
            }
        }
        return output;
    }
    public SwaggerParseResult readContents(String swaggerAsString, List auth, ParseOptions options) {
        SwaggerParseResult output = null;
        for(io.swagger.parser.extensions.SwaggerParserExtension extension : getExtensions()) {
            output = extension.readContents(swaggerAsString, transform(auth), options);
            if(output != null && output.getOpenAPI() != null) {
                return output;
            }
        }
        return output;
    }
    protected List getExtensions() {
        List extensions = new ArrayList<>();
        ServiceLoader loader = ServiceLoader.load(io.swagger.parser.extensions.SwaggerParserExtension.class);
        Iterator itr = loader.iterator();
        while (itr.hasNext()) {
            extensions.add(itr.next());
        }
        extensions.add(0, new OpenAPIV3Parser());
        return extensions;
    }
    /**
     * Transform the swagger-model version of AuthorizationValue into a parser-specific one, to avoid
     * dependencies across extensions
     *
     * @param input
     * @return
     */
    protected List transform(List input) {
        if(input == null) {
            return null;
        }
        List output = new ArrayList<>();
        for(AuthorizationValue value : input) {
            io.swagger.parser.models.AuthorizationValue v = new io.swagger.parser.models.AuthorizationValue();
            v.setKeyName(value.getKeyName());
            v.setValue(value.getValue());
            v.setType(value.getType());
            output.add(v);
        }
        return output;
    }
}
             © 2015 - 2025 Weber Informatics LLC | Privacy Policy