2011-09-29 42 views
0

我是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的優秀教程。我設計了以下類:RESTLet 2.0.9 - 關於多個@Get和@Post註釋的查詢?

用戶 - 具有用戶屬性的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

我認爲這是爲了做的方式是具有:

  • UsersResource與由它fecthes用戶在@Get註解的方法的唯一ID;
  • UsersDomainUsernameResource(類似於獲取邏輯...)

@Get方法然後將處理各種情況:

例如:

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

當涉及到您的示例boolean isUserNew(int userid)它不是一個REST操作。 記住REST只意味着基本的CRUD操作。 我想你只需要得到用戶的表示,然後執行任何你需要的檢查(isNew ... isBlonde ...)