0
考虑以下ServerResource
派生类型:是否有可能在Restlet中强类型化HTTP请求处理程序?
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框架。
谢谢。
OK,所以GET http:// bla-bla-bla/user/2被路由到'getUser',如果我们假设POST http:// bla-bla-bla/user被路由到'newUser',那么'getUser'和'newUser'不能在同一个'ServerResource'中,否则GET http:// bla-bla-bla/user也会被路由到'getUser'!看起来,尽管GET和POST提到了相同的资源('User'),它们必须由不同的“ServerResource”实例处理。这有点令人失望...... – mark