繁体   English   中英

从Angular5到Spring-boot的PUT请求

[英]PUT request from Angular5 to spring-boot

如您所知,put请求看起来像这样:

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(后端)中,等待PUT请求的方法应该类似于:

@RequestMapping(value="/updateIntervention/{id}",method = RequestMethod.PUT)
 public Intervention update(@PathVariable Long id , @RequestBody B obj){

 ... 
}

因此,这里的obj是类B的对象,该对象的类型为Long,它将返回由angular5发送的PUT请求的主体。

我的问题是我一直在spring-data中创建这些不同的类(因为somtimes我只在body中发送一个属性,这就是为什么我创建一个新类来表示它的原因),所以即使我认为它仅包含一个属性,我也可以通过angular发送主体属性,例如idDev。

有什么更好的方法来避免在spring-data中创建新类,以至于我无法通过body的前端发送idDev?

如果我仅举一个例子:

public Intervention update(@PathVariable Long id , @RequestBody long idDev){

我收到反序列化等错误。

有什么想法还是不可能?

将您的参数作为form-data并使用@RequestParam将其放入控制器中:

public Intervention update(@PathVariable Long id , @RequestParam long idDev){

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM