protected void locateReferencedDefinitions(String ref, Set<String> nestedReferencedDefinitions, OpenAPI openAPI) { // if not already processed so as to avoid infinite loops if (!nestedReferencedDefinitions.contains(ref)) { nestedReferencedDefinitions.add(ref); String simpleName = (String) RefUtils.extractSimpleName(ref).getLeft(); Schema model = openAPI.getComponents().getSchemas().get(simpleName); if (model != null) { addSchemaRef(model, nestedReferencedDefinitions); } } } }
protected OpenAPI removeBrokenReferenceDefinitions(OpenAPI openApi) { if (openApi == null || openApi.getComponents() == null || openApi.getComponents().getSchemas() == null) { return openApi; } Set<String> referencedDefinitions = new TreeSet<>(); if (openApi.getPaths() != null) { for (String resourcePath : openApi.getPaths().keySet()) { PathItem pathItem = openApi.getPaths().get(resourcePath); addPathItemSchemaRef(pathItem, referencedDefinitions); } } Set<String> nestedReferencedDefinitions = new TreeSet<>(); for (String ref : referencedDefinitions) { locateReferencedDefinitions(ref, nestedReferencedDefinitions, openApi); } referencedDefinitions.addAll(nestedReferencedDefinitions); openApi.getComponents().getSchemas().keySet().retainAll(referencedDefinitions.stream().map(s -> (String) RefUtils.extractSimpleName(s).getLeft()).collect(Collectors.toSet())); return openApi; }
Schema prop = properties.get(key); if (prop.get$ref() != null) { Pair<String, String> refName = extractSimpleName(prop.get$ref()); if (!StringUtils.isBlank(refName.getRight())) { // skip if didn't resolve simple name prop.set$ref(constructRef(toSnakeCase(refName.getLeft()), refName.getRight()));
protected void locateReferencedDefinitions(String ref, Set<String> nestedReferencedDefinitions, OpenAPI openAPI) { // if not already processed so as to avoid infinite loops if (!nestedReferencedDefinitions.contains(ref)) { nestedReferencedDefinitions.add(ref); String simpleName = (String) RefUtils.extractSimpleName(ref).getLeft(); Schema model = openAPI.getComponents().getSchemas().get(simpleName); if (model != null) { addSchemaRef(model, nestedReferencedDefinitions); } } } }
protected OpenAPI removeBrokenReferenceDefinitions(OpenAPI openApi) { if (openApi == null || openApi.getComponents() == null || openApi.getComponents().getSchemas() == null) { return openApi; } Set<String> referencedDefinitions = new TreeSet<>(); if (openApi.getPaths() != null) { for (String resourcePath : openApi.getPaths().keySet()) { PathItem pathItem = openApi.getPaths().get(resourcePath); addPathItemSchemaRef(pathItem, referencedDefinitions); } } Set<String> nestedReferencedDefinitions = new TreeSet<>(); for (String ref : referencedDefinitions) { locateReferencedDefinitions(ref, nestedReferencedDefinitions, openApi); } referencedDefinitions.addAll(nestedReferencedDefinitions); openApi.getComponents().getSchemas().keySet().retainAll(referencedDefinitions.stream().map(s -> (String) RefUtils.extractSimpleName(s).getLeft()).collect(Collectors.toSet())); return openApi; }