wybourn
wybourn

Reputation: 678

How to add additional info on java constraints

With java validation constraints, i.e.

@NotNull, @Size, etc

You can add a message field that your api can return to the client. Is there anyway to add additional fields such as a custom code?

The problem I have is that every possible error needs it's own message and code return to the client. (By code I mean a custom one in the response body, not a http status code).

I.e.

{
  message: foo can not be null,
  code: 10001
}

The only thing I can think of is to use custom validator classes on every single field which would be quite a lot of work, or have a giant if/else block that sets the code based on the message.

Can anyone think of a nicer solution?

Thanks in advance for any help :)

Upvotes: 0

Views: 111

Answers (1)

Gunnar
Gunnar

Reputation: 18970

You can use the payload() parameter defined by all constraint types.

You'd have to declare a class type for each one of your error codes:

public interface Error_01 {}

And then:

public class SomeValidatedClass {
    @NotNull(payload=Error_01.class)
    private String someField;
}

Upvotes: 1

Related Questions