blob: 18fa22518af84a89bc85ef3e7b1d6bb243e608d6 [file] [log] [blame]
package org.apache.servicecomb.toolkit.oasv.compatibility;
import static java.util.Collections.emptyList;
import java.util.List;
import io.swagger.v3.parser.OpenAPIV3Parser;
import io.swagger.v3.parser.core.models.ParseOptions;
import io.swagger.v3.parser.core.models.SwaggerParseResult;
public abstract class CompatibilityCheckParser {
private CompatibilityCheckParser() {
// singleton
}
public static SwaggerParseResult parseYaml(String yaml) {
OpenAPIV3Parser parser = new OpenAPIV3Parser();
return parser.readContents(yaml, null, createParseOptions());
}
public static List<String> checkSyntax(String yaml) {
SwaggerParseResult result = parseYaml(yaml);
return result.getMessages() == null ? emptyList() : result.getMessages();
}
private static ParseOptions createParseOptions() {
ParseOptions parseOptions = new ParseOptions();
parseOptions.setResolve(true);
parseOptions.setResolveCombinators(true);
parseOptions.setResolveFully(true);
parseOptions.setFlatten(false);
return parseOptions;
}
}