有这个方法:
@RequestMapping(method = {RequestMethod.PATCH, RequestMethod.POST})
@PreAuthorize("hasRole('ADMIN')")
public TaskOutDto updateCreateTask(@RequestBody(required = false) @Valid Optional<TaskUpdateInDto> updateTask,
@RequestBody(required = false) @Valid Optional<TaskCreateInDto> createTask) {
return updateTask
.map(mapper::fromDto)
.map(mapper::toDto)
.orElse(createTask
.map(mapper::fromDto)
.map(mapper::toDto)
.orElseThrow(NullPointerException::new));
}
在其中,我只是进行映射并返回结果。但不幸的是,请求甚至没有进入方法——立即抛出错误 400。如果你删除 @Valid 注释,它仍然会抛出 400
这是邮递员的截图:
也许你有类似的东西
HttpMessageNotReadableException
?)那些。您期望
@RequestBody
两个类:TaskUpdateInDto
和TaskCreateInDto
,但请求正文始终只有一个。