Jersey REST:我可以从参数字段映射@PathParam

问题描述 投票:0回答:1

我有一个对某些对象执行CRUD的RESTful接口:

class Foo {
   String id;
   ...
}

更新声明看起来像:

public class FooCRUD {
   @PUT
   @Path("/foos/{id}")
   public void replace(@PathParam("id") id, Foo foo){...}
}

但是Foo已经包含id。我想执行以下操作,但似乎不起作用:

class Foo {
   @PathParam("id")
   String id;
   ...
}
public class FooCRUD {
   @PUT
   @Path("/foos/{id}")
   public void update(Foo foo){...}
}

是否有某种方法可以避免向该方法添加额外的参数?

java rest jersey
1个回答
0
投票

您尝试使用@PathParam进行的操作将无法正常工作,您有两种方法可以这样做:

First:从路径参数中删除id,并从Foo类表示的主体中获取其值,如下所示:

public class FooCRUD {
   @PUT
   @Path("/foos")
   public void update(@RequestBody Foo foo){...}
}

第二:您可以像完成操作一样保留PUT请求,然后将路径参数中的id分配给方法中的Foo对象,如下所示:

public class FooCRUD {
   @PUT
   @Path("/foos/{id}")
   public void update(@PathParam String id, @RequestBody Foo foo){
      foo.id=id;
      ...
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.