Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Return multiple missing kotlin parameters at once #806

Open
jasiustasiu opened this issue Jun 11, 2024 · 2 comments
Open

Return multiple missing kotlin parameters at once #806

jasiustasiu opened this issue Jun 11, 2024 · 2 comments

Comments

@jasiustasiu
Copy link

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 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.

Describe alternatives you've considered

No response

Additional context

No response

@k163377
Copy link
Contributor

k163377 commented Sep 14, 2024

At least I don't have the motivation to work on this.
I agree that it is useful, but I think most libraries (e.g. kotlin-reflect) only report one missing content.

@aboutZZ
Copy link

aboutZZ commented Sep 20, 2024

@k163377 Hi, I want to handle MismatchedInputException in spring boot, so I added a DeserializationProblemHandler, but the handler didn't handle MismatchedInputException (it only handle the unknown property problems, I want handle input null for nonnull props situation), any way to resolve this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants