Как вы знаете, запрос на размещение выглядит следующим образом:
put(url: string, body: any, options?: RequestOptionsArgs): Observable<Response>
Итак, в угловом для моего случая это выглядит так:
updateIntervention(id:number,idDev:number){
if(this.authService.getToken()==null) {
this.authService.loadToken();
}
return this.http.put(this.host+"/updateIntervention/"+id,idDev,{headers:new HttpHeaders({'Authorization':this.authService.getToken()})});
}
Таким образом, в Spring-data (back end) метод, ожидающий запрос PUT, должен выглядеть примерно так:
@RequestMapping(value="/updateIntervention/{id}",method = RequestMethod.PUT)
public Intervention update(@PathVariable Long id , @RequestBody B obj){
...
}
Итак, объект obj представляет собой объект класса B с атрибутом типа Long, который будет возвращать тело запроса PUTотправлено angular5.
моя проблема в том, что я продолжаю создавать эти разные классы в данных Spring (потому что иногда я отправляю только один атрибут в теле, поэтому я создаю новый класс для его представления), чтобы я мог получитьтело, отправленное angular, даже если оно содержит только один атрибут, как в этом случае idDev.
существуют ли лучшие способы избежать создания новых классов в данных Spring, поэтому я не могу получить отправку idDev внешним интерфейсом в теле?
Если я ставлю только для примера:
public Intervention update(@PathVariable Long id , @RequestBody long idDev){
я получаю ошибку десериализации и т. Д.
Любая идея или это невозможно?