Skip to content

Commit 4c0558e

Browse files
authored
Merge pull request #9817 from swagger-api/resolved-spec-not-flatten
[openapi, openapi-yaml] - option not to flatten resolved spec, refactor
2 parents 1ca09f4 + 8de0b58 commit 4c0558e

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/v3/CodegenConfig.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,4 +233,8 @@ public interface CodegenConfig {
233233
List<CodegenArgument> getLanguageArguments();
234234

235235
void setLanguageArguments(List<CodegenArgument> codegenArguments);
236+
237+
boolean needsUnflattenedSpec();
238+
239+
void setUnflattenedOpenAPI(OpenAPI unflattenedOpenAPI);
236240
}

modules/swagger-codegen/src/main/java/io/swagger/codegen/v3/config/CodegenConfigurator.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,14 @@ public ClientOptInput toClientOptInput() {
468468
SwaggerParseResult result = new OpenAPIParser().readContents(inputSpec, authorizationValues, options);
469469
OpenAPI openAPI = result.getOpenAPI();
470470

471+
if (config.needsUnflattenedSpec()) {
472+
ParseOptions optionsUnflattened = new ParseOptions();
473+
optionsUnflattened.setResolve(true);
474+
SwaggerParseResult resultUnflattened = new OpenAPIParser().readContents(inputSpec, authorizationValues, optionsUnflattened);
475+
OpenAPI openAPIUnflattened = resultUnflattened.getOpenAPI();
476+
config.setUnflattenedOpenAPI(openAPIUnflattened);
477+
}
478+
471479
input.opts(new ClientOpts())
472480
.openAPI(openAPI);
473481

@@ -497,6 +505,15 @@ public ClientOptInput toClientOptInput() {
497505
LOGGER.debug("getClientOptInput - parsed inputSpecURL " + inputSpecURL);
498506
input.opts(new ClientOpts())
499507
.openAPI(openAPI);
508+
509+
if (config.needsUnflattenedSpec()) {
510+
ParseOptions optionsUnflattened = new ParseOptions();
511+
optionsUnflattened.setResolve(true);
512+
SwaggerParseResult resultUnflattened = new OpenAPIParser().readLocation(inputSpecURL, authorizationValues, optionsUnflattened);
513+
OpenAPI openAPIUnflattened = resultUnflattened.getOpenAPI();
514+
config.setUnflattenedOpenAPI(openAPIUnflattened);
515+
}
516+
500517
}
501518

502519
config.setOutputDir(outputDir);

0 commit comments

Comments
 (0)