Есть объект с несколькими полями который отправляется как Json
запрос на сервер.
Допустим есть два разных Json
запроса на сервер: 1 добавление данных, 2 обновление данных.
Как сделать так, чтоб при разных Json
запросах отправлялись разные поля одного объекта?
Например:
name
при обновлении отправлять поля yandexId
и name
public class CampaignDataTest implements Serializable {
private long id;
private long yandexId;
private String name;
//Гетеры и сеттеры
}
Если пользуешься Jackson
Заводим класс с интерфейсами. Ими мы будем помечать поля. Если один интерфейс расширяет другой, он включит в Json все поля помеченные предком.
public final class Views {
public interface Name {}
public interface IdName extends Name{}
public interface FullUserInfo extends IdName {}
}
Потом в классе помечаем поля @JsonView
@JsonView(Views.FullUserInfo.class)
private long id;
@JsonView(Views.IdName.class)
private long yandexId;
@JsonView(Views.Name.class)
private String name;
В контроллере помечаем методы аннотациями
@RestController
@RequestMapping("user")
public class UserController {
@PutMapping("/")
@JsonView(Views.Name.class)
public User addUser() {...}
@PatchMapping("/")
@JsonView(Views.IdName.class)
public User updateUser() {...}
}
Теперь после запроса с фронтенда по одному адресу (н.р http://localhost:8080/user/) но разными методами (Put и Patch) будут вызываться разные методы контроллера. А в ответ будут уходить json с полями помеченными нужным интерфейсом. Т.е метод addUser() вернет json вида {"name":"someName"}, а updateUser() {"name":"someName","yandexId":"1234567890"}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Можно ли проверить непосредственно тип самого параметра в классе generic? типа этого?
я столкнулся с проблемой переноса приложения с одной технологии на другую, если верить тому, что я вычитал
Идея такова: Вставляю список в БД, подписываюсь на вставку, при успешной вставке, возвращается список id вставленных элементов, по этому списку...