Open david-kubecka opened 4 months ago
Hi @david-kubecka
Have you found a solution to this problem?
did you try enabling the option generateOneOfAnyOfWrappers
?
Hello @wing328,
Yes, I've tried, but it makes no difference. Here is my full config :
globalProperties.set(
mapOf(
"apis" to "",
"models" to "",
"auth" to "",
"supportingFiles" to "CollectionFormats.kt"
)
)
configOptions.set(
mapOf(
"dateLibrary" to "legacy",
"library" to "jvm-ktor",
"useCoroutines" to "true",
"serializationLibrary" to "kotlinx_serialization",
"enumPropertyNaming" to "UPPERCASE",
"apiSuffix" to "InternalApi",
"generateOneOfAnyOfWrappers" to "true"
)
)
typeMappings.set(
mapOf(
"DateTime" to "java.util.Date",
"number" to "kotlin.Int",
"Json" to "kotlinx.serialization.json.Json"
)
)
Bug Report Checklist
Description
When a type in an
anyOf
directive contains a required field then the generated class makes that field also required even though that particular type may not be present in the data.As as example, take the enclosed Pets model from the official OpenAPI guide. The generated kotlin class is as follows:
With this class it is impossible to construct an instance for the valid model
{"age": 3}
because thepetType
field (from the otheranyOf
type) is missing.openapi-generator version
Both 7.5.0 and latest (master).
OpenAPI declaration file content or url
Generation Details
Steps to reproduce
PetsPatchRequest
classSuggest a fix
I'm afraid Kotlin's type system is not strong enough to express these kinds of nullability nuances. A good enough approach would be to make all the generated fields nullable.