Я пытаюсь проанализировать следующий файл swagger с openapi4j:
{
"openapi" : "3.0.0",
"info" : {
"title" : "My Service",
"version" : "1.0.0"
},
"paths" : {
"/endpoint" : { "$ref" : "swagger2.json#/paths/get_endpoint" },
}
}
Вы можете видеть, что у него есть простая ссылка на другой файл в той же папке.
Я анализирую Файл Swagger со следующим:
URL url = Thread.currentThread().getContextClassLoader().getResource(filePath);
openAPI = new OpenApi3Parser().parse(url, false);
Локально в моей IDE, это прекрасно работает. Ссылка загружена, и я могу проверить запросы на нее без проблем. Однако, когда я собираю проект, он может нормально загрузить исходный файл чванства, но ни один из ссылок. Я получаю следующую ошибку:
StackTrace: org.openapi4j.core.exception.ResolutionException: Failed to load document from 'swagger2.json'
at org.openapi4j.core.model.reference.AbstractReferenceResolver.registerDocument(AbstractReferenceResolver.java:118)
at org.openapi4j.core.model.reference.AbstractReferenceResolver.findReferences(AbstractReferenceResolver.java:92)
at org.openapi4j.core.model.reference.AbstractReferenceResolver.resolve(AbstractReferenceResolver.java:53)
at org.openapi4j.core.model.v3.OAI3Context.resolveReferences(OAI3Context.java:103)
at org.openapi4j.core.model.v3.OAI3Context.<init>(OAI3Context.java:73)
at org.openapi4j.core.model.v3.OAI3Context.<init>(OAI3Context.java:47)
at org.openapi4j.parser.OpenApi3Parser.parse(OpenApi3Parser.java:34)
at org.openapi4j.parser.OpenApi3Parser.parse(OpenApi3Parser.java:18)
at org.openapi4j.parser.OpenApiParser.parse(OpenApiParser.java:53)
Я не уверен, возможно ли это. Я предполагаю, что мне, возможно, придется скопировать ресурсы моего проекта во время выполнения в файловую систему где-нибудь, чтобы получить более легкий доступ. Я хотел бы избежать этого маршрута, если это возможно.