Весенний ботинок. Как изменить ответ контроллера перед процессом сериализации - PullRequest
0 голосов
/ 09 января 2019

Я хочу изменить (перехватить) объект ответа перед процессом сериализации и после того, как контроллер вернет объект. У меня есть RestController и класс пользователя, как это:

public class User {
    public String name;
    public int id;
    public boolean hasErrors;
    public User(Sting name, int id) {
        this.name = name;
        this.id = id;
        this.hasErrors = false;
    }
}

@RestController
public class UserController {
   @GetMapping("/")
   public User getUser() {
       return userService.performMagicAndGetUser();
   }
}

и я хочу иметь возможность изменять объект User, возвращаемый методом UserController :: getUser, непосредственно перед его сериализацией в тело HttpServletResponse в виде JSON. Поэтому я хочу изменить свойство 'hasErrors' на основе того, что произошло в методе 'userService.performMagicAndGetUser' и было сохранено в некотором держателе контекста запроса. Я хочу изменить окончательный ответ клиенту для каждого запроса в каждой конечной точке, которая возвращает объект User.

...