使用swagger-parser API解析外部$ ref

问题描述 投票:0回答:1

我正在尝试创建在参数和响应中包含外部文件引用的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);

我尝试使用此代码段,但是当YAML文件中存在apiDefinitionValidationResponse时,$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

我正在尝试创建在参数和响应中包含外部文件引用的API资源,并尝试使用swagger解决这些引用。 (支持使用...

java reference swagger swagger-2.0 openapi
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.