使用 OpenAPI(和代码生成器)处理继承

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

我正在开发一个 API 作为 springboot 项目。我使用 OpenAPI,设计优先,面临以下挑战:我需要以 OpenAPI 生成器(Spring)生成这样的控制器接口的方式获取 openapi 描述:

ResponseEntity<? extends Object> pushVersions()

到目前为止,我只能生成这样的东西:

ResponseEntity<Object> pushVersions()
openapi openapi-generator
2个回答
0
投票

可以使用规范中的 x-parent 属性来扩展: https://github.com/OpenAPITools/openapi-generator/pull/14172 与 allOf 结合使用 你甚至不需要为此使用鉴别器


0
投票

可以在 OpenAPI Generator 项目的 OpenAPI Normalizer 中启用规则

REF_AS_PARENT_IN_ALLOF
来设置继承,而无需在 allOf 中使用判别器,例如

java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate -g java -i modules/openapi-generator/src/test/resources/3_0/allOf_extension_parent.yaml -o /tmp/java-okhttp/ --openapi-normalizer REF_AS_PARENT_IN_ALLOF=true

参考:https://github.com/openapitools/openapi-generator/blob/master/docs/customization.md#openapi-normalizer

© www.soinside.com 2019 - 2024. All rights reserved.