Skip to content

Commit 4fc46cb

Browse files
authored
Make the OpenAPINormalizer extensible (#20995)
* Make the OpenAPINormalizer configurable Add comment to force rebuild * Add documentation of NORMALIZER_CLASS * Use default normalizeSchema() method and add a new skipNormalization method * super.normalizedSchema() can proceed
1 parent b1de687 commit 4fc46cb

File tree

4 files changed

+150
-65
lines changed

4 files changed

+150
-65
lines changed

docs/customization.md

+7
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,13 @@ Example:
601601
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate -g java -i modules/openapi-generator/src/test/resources/3_0/enableKeepOnlyFirstTagInOperation_test.yaml -o /tmp/java-okhttp/ --openapi-normalizer REMOVE_X_INTERNAL=true
602602
```
603603
604+
- `NORMALIZER_CLASS`: Set to full classname of a class extending the default org.openapitools.codegen.OpenAPINormalizer. It allows customization of the default normalizer.
605+
606+
Example:
607+
```
608+
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate -g java -i modules/openapi-generator/src/test/resources/3_0/required-properties.yaml -o /tmp/java-okhttp/ --openapi-normalizer NORMALIZER_CLASS=org.openapitools.codegen.OpenAPINormalizerTest$RemoveRequiredNormalizer
609+
```
610+
604611
- `FILTER`
605612
606613
The `FILTER` parameter allows selective inclusion of API operations based on specific criteria. It applies the `x-internal: true` property to operations that do **not** match the specified values, preventing them from being generated.

modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ void configureGeneratorProperties() {
261261
if (version.atLeast("3.1.0")) {
262262
config.openapiNormalizer().put("NORMALIZE_31SPEC", "true");
263263
}
264-
OpenAPINormalizer openapiNormalizer = new OpenAPINormalizer(openAPI, config.openapiNormalizer());
264+
OpenAPINormalizer openapiNormalizer = OpenAPINormalizer.createNormalizer(openAPI, config.openapiNormalizer());
265265
openapiNormalizer.normalize();
266266
}
267267
} catch (Exception e) {

0 commit comments

Comments
 (0)