【发布时间】:2012-05-21 19:55:31
【问题描述】:
我想为资源的 REST 接口提供这样的方法
@POST
@Consumes(MediaType.APPLICATION_JSON)
public void add(@Auth User user, @Valid Food food) {
//consume
}
但是,这是不可能的,因为我收到如下错误: “严重:缺少方法 public void com.restaurant.FoodResource.add(com.restaurant.User, com.restaurant.Food) 在索引 0 处的参数处 严重:缺少方法 public void com.restaurant.FoodResource.add(com.restaurant.User, com.restaurant.Food) 在索引 1 处的参数 严重:方法,公共无效 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 发送吗?
【问题讨论】:
-
奇怪,我这样做并工作了:
public void modifyUser(@Auth User authUser, @Valid User user)。我需要发布用户,所以我将 authUser 和发布的用户分开。
标签: json authentication parameters jersey dropwizard