We expose public API and we want to to be as descriptive as possible returning bad request response. So we want to return all required null fields at once. By using KotlinValueInstantiator and MissingKotlinParameterException we are able to return just one at the time. So we use @NotNull annotation validation but this requires us to mark non-null fields as nullable and then use ugly !! in the code eg.
data class Task(
@field:NotNull
val taskType: TaskType?,
@field:NotNull
val createdAt: Instant?,
@field:NotNull
val updatedAt: Instant?,
)
Describe the solution you'd like
It would be much nicer if exception thrown by jackson kotlin module contained all fields that are invalid (MissingKotlinParametersException with a list of missing parameters?). Then we could simplify example above to
data class Task(
val taskType: TaskType,
val createdAt: Instant,
val updatedAt: Instant,
)
It could be configurable with some kind of flag to keep backward compatibility and not iterate through all fields if not necessary.
Use case
We expose public API and we want to to be as descriptive as possible returning bad request response. So we want to return all required null fields at once. By using
KotlinValueInstantiator
andMissingKotlinParameterException
we are able to return just one at the time. So we use @NotNull annotation validation but this requires us to mark non-null fields as nullable and then use ugly!!
in the code eg.Describe the solution you'd like
It would be much nicer if exception thrown by jackson kotlin module contained all fields that are invalid (MissingKotlinParametersException with a list of missing parameters?). Then we could simplify example above to
It could be configurable with some kind of flag to keep backward compatibility and not iterate through all fields if not necessary.
Describe alternatives you've considered
No response
Additional context
No response