是否可以在Restlet中使用强类型的HTTP请求处理程序?

时间:2011-11-22 08:28:13

标签: java restlet

考虑以下ServerResource派生类型:

public class UserResource extends ServerResource {
  @Get
  public User getUser(int id) {
    return new User(id, "Mark", "Kharitonov");
  }
}

(是的,无论给定的ID如何,它总是返回相同的用户。)

是否可以在Restlet中使其工作?因为,据我所知,GET处理程序的预期签名是:

Representation get();

OR

Representation get(Variant v);  // (no idea what it means yet)

现在我明白了,我可以实现非类型安全的GET处理程序从请求中提取参数然后调用getUser,之后从结果中组成相应的Representation实例并返回。但这是一个样板代码,它不属于应用程序代码,它的位置在框架内。至少,这就是OpenRasta的工作方式 - 我在.NET中使用的REST框架

感谢。

1 个答案:

答案 0 :(得分:0)

您应该从签名中删除参数

  @Get
  public User getUser() {
    String id = getQuery().getFirstValue("id");
    return new User(id, "Mark", "Kharitonov");
  }

在这种情况下无需覆盖get()方法,因为@Get注释将被自动检测。