Skip to content

Commit 8174b8f

Browse files
committed
Normalize refs to prevent schema duplication
1 parent 0f9d0c5 commit 8174b8f

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/processors/ExternalRefProcessor.java

+13
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import io.swagger.v3.parser.ResolverCache;
3535
import io.swagger.v3.parser.models.RefFormat;
3636
import io.swagger.v3.parser.models.RefType;
37+
import io.swagger.v3.parser.util.RefUtils;
3738

3839
import org.apache.commons.io.FilenameUtils;
3940
import org.apache.commons.lang3.StringUtils;
@@ -92,6 +93,18 @@ public String processRefToExternalSchema(String $ref, RefFormat refFormat) {
9293
return renamedRef;
9394
}
9495

96+
RefFormat format = computeRefFormat($ref);
97+
if (format.equals(RefFormat.RELATIVE)) {
98+
String normalizedRef = Paths.get($ref).normalize().toString();
99+
System.out.println("Normalized " + $ref + " to " + normalizedRef);
100+
renamedRef = cache.getRenamedRef($ref);
101+
if (renamedRef != null) {
102+
return renamedRef;
103+
} else {
104+
$ref = normalizedRef;
105+
}
106+
}
107+
95108
final Schema schema = cache.loadRef($ref, refFormat, Schema.class);
96109

97110
if(schema == null) {

0 commit comments

Comments
 (0)