RESTLet 2.0.9 - 关于多个@Get和@Post注释的查询?

时间:2011-09-29 07:50:06

标签: java web-services restlet

我是RESTLet的新手并使用2.0.9。我想做的是有多种方法@Get& @POST注释。我可以访问VO类(值对象),因此我不需要使用JSON或XML表示。我使用了http://wiki.restlet.org/docs_2.0/13-restlet/21-restlet/318-restlet/303-restlet.html#dsy303-restlet_jse提供的优秀教程。我设计了以下类:

用户 - 具有用户属性的VO POJO。 UserResource inteface:

public interface UserResource 
{ 
    @Get 
    public User userLogin();    
 }

对于单个@Get注释,客户端代码工作正常。

     ClientResource cr = new ClientResource(url); 
     // Get the Contact object 
     UserResource resource = cr.wrap(UserResource.class); 
     User user = resource.userLogin();*

现在,我想在@Get注释中使用多个方法。例如,有两个/三种类型的getUser对象类似于我们在单个JVM中的普通DAO层中的对象。

User getUser(int userId) 
User getUser(String domain, String username) 
boolean isUserNew(int userid)* 

和类似的多种方法来更新和添加用户[@POST注释]:

int addUser(User user) 
int updateUser(int userId, User user)

有可能实现这样的事吗?如果不是什么替代方案?我在哪里可以获得Annotations @ Get,@ Post的文档?

1 个答案:

答案 0 :(得分:1)

我认为这样做的方式是:

  • UsersResource,带有@Get带注释的方法,可以通过它唯一的ID来区分用户;
  • UsersDomainUsernameResource(类似的获取逻辑......)

@Get方法将处理各种情况:

例如:

  • myserverside.com/users/100
  • myserverside.com/users/domain/username

当涉及到您的示例boolean isUserNew(int userid)时,它不是REST操作。 请记住,REST仅表示基本的CRUD操作。 我想你只需得到用户的代表,然后执行你需要的任何检查(isNew ... isBlonde ......)