考虑以下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框架
感谢。
答案 0 :(得分:0)
您应该从签名中删除参数
@Get
public User getUser() {
String id = getQuery().getFirstValue("id");
return new User(id, "Mark", "Kharitonov");
}
在这种情况下无需覆盖get()方法,因为@Get注释将被自动检测。