I use the Spring Boot 2.0.8.RELEASE.
I have a @RestController
method looks like this:
@PostMapping("/message")
public PushMessageResponse sendPush(@Validated @RequestBody PushMessageRequest pushMessageRequest) {
final List<String> sentMessage = pushService.sendMessage(pushMessageRequest);
return new PushMessageResponse(sentMessage);
}
And I have a PushMessageRequest
class that looks like this:
@RequiredArgsConstructor
@Data
public class PushMessageRequest {
private final Optional<UUID> clientId;
private final Optional<String> token;
private final Optional<String> text;
private final Optional<PushOptions> pushOptions;
@NotBlank
private final String appName;
}
And If I send a request to this method with a body that doesn't contain some property I see that that kind of property(those that I didn't pass in the JSON request) is null.
I've already tried to add such configuration:
@Configuration
public class JacksonConfiguration {
@Bean
public Module jdk8Module() {
return new Jdk8Module();
}
}
I have expected to see that the Optional property of my DTO isn't null but such property has a value of Optional.empty()
.