我想为资源的 REST 接口提供这样的方法
@POST
@Consumes(MediaType.APPLICATION_JSON)
public void add(@Auth User user, @Valid Food food) {
//consume
}
但是,这是不可能的,因为我收到如下错误:“严重:在索引 0 的参数处缺少方法 public void com.restaurant.FoodResource.add(com.restaurant.User, com.restaurant.Food) 的依赖项严重:缺失方法 public void com.restaurant.FoodResource.add(com.restaurant.User, com.restaurant.Food) 在索引 1 处的参数的依赖严重:方法,公共 void com.restaurant.FoodResource.add(com.restaurant.User, com.restaurant.Food),用资源的 POST 注释,类 com.restaurant.FoodResource,不被识别为有效的资源方法。
我发现根据规范(3.3.2.1 实体参数) http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html,不可能有两个参数没有用某些注释进行注释
有什么选择仍然可以做这样的事情?我想到的是一个封装用户和食物的对象,但这对我来说似乎不是一个好的解决方案。
有没有其他更优雅的方式来做这样的事情?我可以将 JSON Food 表示作为@PathParam 发送吗?