Я пытаюсь создать ресурсы API, содержащие ссылку на внешний файл в параметрах и ответах, и пытаюсь разрешить эти ссылки с помощью swagger. (Поддержка импорта определений OpenAPI с внешними ссылками).
Для этого я получаю файлы YAML в виде файлового архива, и там будет главный файл main.YAML и ссылки на другие файлы из него.
OpenAPIV3Parser openAPIV3Parser = new OpenAPIV3Parser();
ParseOptions options = new ParseOptions();
options.setResolve(true);
options.setFlatten(true);
OpenAPI openAPI = openAPIV3Parser.read(extractedLocation + "/main.yaml", null, options);
String openAPIContent = Yaml.mapper().writerWithDefaultPrettyPrinter().writeValueAsString(openAPI);
APIDefinitionValidationResponse apiDefinitionValidationResponse = new APIDefinitionValidationResponse ();
apiDefinitionValidationResponse = OASParserUtil.validateAPIDefinition(openAPIContent, returnContent);
Я пробовал использовать этот фрагмент кода, но apiDefinitionValidationResponse
выдает ошибку, когда в YAML-файле есть $ref
. Если $ref
нет, то apiDefinitionValidationResponse успешен и api создан.
Поэтому я сомневаюсь, что существует проблема с передачей данных методу OASParserUtil.validateAPIDefinition
(метод validateAPIDefinition
не имеет проблем, и он был проверен и протестирован)
Может ли кто-нибудь помочь мне с этим ?
Созданный файл YAML содержит extensions{}
строк
Сообщения об ошибках в журналах отладки:
attribute info.license.extensions is unexpected
attribute info.extensions is unexpected
attribute components.schemas.ErrorListItem.extensions is unexpected
attribute components.schemas.MenuItem.extensions is unexpected
attribute components.schemas.Order.extensions is unexpected